## **Co-labs Whimsical Worlds**
**[Group Portfolio - Click Here](https://docs.google.com/presentation/d/1mi4NKDakjWgrGttErXMIeXvyUTjZ-ccnTlF6lKloE3c/edit?usp=sharing)**
For our collaborative project, we took on the task of creating a sci-fi world using varying methods of creative output. In our world, Humans have become a space-faring colony that go to other planets to ravage them for their natural resources, no matter the cost. For my part in this project, I was put in charge of creating a small environmental diorama to help showcase and bring together the assets of the others, so, to start I took a look at highly popular media in the sci-fi genre, such as ALIEN & Warhammer 40k as they all have a dark and gloomy, dread-filled atmosphere that I think adds a sense of mystery of our world.

### **Working On Water Shaders:**
Since I have been utilising shader graphs in Unreal Engine 5 in our other project & found a deep appreciation for how they help enhance a world, I knew I would want to create some form of water for this project, so, for the first few weeks I started to develop a water shader based on what I had learnt from our main project.

I started this process by creating a ripple shader that takes into consideration the distance from the nearest surface by calculating the exact world coordinates from the closest 3D mesh alongside calculating & tracking the exact player location within our play space to apply a spherical mask, which is utilised to cast ripples around the player when they are actively within the water space.

My water caustics were made by taking a photo of the bottom of my local swimming pool using a GoPro, & then proceeding to convert it into a greyscale texture that can be applied to a light object. This object then casts the lighting into the world & utilising some node editing, I made the water caustics move in random x & z coordinates to simulate randomness/the light refracting off of the waves on the surface to the floor of the sea bed.
For the foam, I generated a random noise map using Photoshop & set it to a masking layer with a few different nodes to animate it floating on the surface. Alongside this, I used nodes to calculate the distance to the nearest surface using the same tech that was utilised on my ripple shader to cast foam near all mesh objects such as the rocks surrounding the water.

### **Working On An Alien Portal:**
For our world, I wanted to create something functional for the default UE5 Player & something that felt alien in nature, so I decided to work on creating a teleporter that looks to have been created by a highly advanced alien race. Sadly, Maya is broken on my home PC, so I can't take screenshots of my modelling process. However, I can explain it. I started by creating a chiselled rock material inside of zbrush, then optimising it for use in Autodesk Maya. I proceeded to create hard surface materials within Autodesk Maya to give it an "out of this world" feel as it separates the model from the natural rock formations.
As a lot of sci-fi movies that are treasured by their fans were created in the 70s-90s, I chose to create some CRT TV screens to use as displays for the portal. I also felt this helps with giving the world a slight bit of familiarity whilst still distancing it's self from what would be considered normal by our space-faring humans.

For the technical side of the TV screens, I wanted to create a realistic RGB material that reflects older TV models. To do this I separated a test image into its individual RGB values. I then pushed this through a custom RGB mask I created that separates the individual pixels into a perfect mask before proceeding to merge them back together creating a fully in-colour image. This creates an effect that lets you zoom in on the tv screens and be able to see the individual pixels of the monitor, making it more realistic to view.

I went back to the TV screen later to add a custom-made glitch texture I generated within Photoshop to show that these TV screens are damaged after extended use. I also added flickering effects to the RGB mask to give off a fake monitor refresh rate look.

### **Creating the portal visual effects:**
For the look of the portal effect it's self, I considered trying to recreate something out of Marvel's Dr. Strange, as I found the concept of being able to see where the portal leads to be a fun technical challenge.

I started by creating a Niagra particle effect within UE5's editor. It utilises physical motion and the default particle sprite to create a spinning blade/sparking effect that closely represents the effect given off by a Marvel portal. Since the portal model at this point had a Teal/Green glow to it, It felt fitting to also make the particles a similar colour so they blend together quite nicely.

After creating the particle effect, I next needed to create a way to see the transport location within the portal itself. To do this I created a basic cylindrical mesh alongside a cube map render target camera. This camera takes a live preview of the world and turns it into a cube map texture. After getting the cube map texture, I then turned on the update every tick option that gives the image a live update every frame the game is running. This is how I showcase a live visual preview of what the camera can see in texture form. This then lets me apply that material to the cylindrical mesh and position it within the portal frame to give off an HD image of where the portal is leading.
To update what the portal shows as its teleport location, all I have to do is move the camera to where it needs to be.

I decided I wanted the portal to be fully functional, so I created a method to track player positioning within the game space & I made a way to be able to teleport the player to an object after entering a trigger box region. Once a player gets close to the portal effect, they enter the trigger and are teleported directly to an invisible marker placed in the world. This marker can be moved to wherever I need the player to go and is able to by changed on the fly whilst creating the world to allow for easy project development.
[Video Of The Functioning Portal & TV Screen Effect (Click Me)](https://www.youtube.com/watch?v=nfXQLh_eyPY&ab_channel=ItsJackLads)

### **Creating Volumetric Fog:**

Volumetric fog was something I wanted to create as all of the worlds in my research utilised it to add to the atmosphere of their planet. I spent a lot of time trying to make this as modular as my water shader, where you would be able to change the colour and fog thickness on the fly as it makes the project more modular/editable whilst in the engine. I even manged to make a way to generate how fast the wind pushed the fog using a colour gradient. I then proceeded to utilise this fog to add a thick layer of mist to both the world and the water surface to make our environment look more swamp-like in nature. The fog is also able to absorb light from any source in the play space and calculate the colour output to match up accordingly giving the world good rays when the light catches my fog at the perfect angles.

### **Project Reflection And Final Diorama**

[Video Of Final Project (Click Me)](https://www.youtube.com/watch?v=PEzloPu3DMA&ab_channel=ItsJackLads)
At the end of our project, me, Alex & Juno sat down and brought together our 3D assets and put them into the play space to create a Diorama. Overall, this project went well & since we have been working together on multiple projects this semester, getting a bit of collaboration with effective communication into this project was a breeze. This is a first for collabs as in the past I could never get anything collaborative done as teams wouldnt work together. However, we found that as a whole the project was pushed to the side by everyone on our team as our main assignment took up a lot more time & resources than we had initially expected which has led to us simplifying tasks to their very basics in order to meet deadlines.
We kept the world theme fairly open, as it’s a science fantasy world after all, so anything could be designed which gave our team their own freedom to make what they wanted for their assignments under a loose goal. Our main goal originally was to make an art book combining everyone's art together but we didn’t focus primarily on making 2D art as we tried various other methods that other members of the group were more comfortable with such as utilising 3D which I believe made people more comfortable working on this assignment overall.
With the main project being a fantasy brief, I really wanted to make something that strayed away from the medieval style we have been constantly developing, and this was my way of being able to do that. I essentially used collabs as a way to take a breather and reset for our main project as whilst I enjoy creating environments there are elements I enjoy more than others that it's nice to re-visit (such as water shaders) & During the duration of the assignment, I proceeded to work on environment assets over the weekends (mainly on Sundays) as creating shaders takes a lot of time. I like to have a bit of a quiet day in order to fully focus on troubleshooting any issues that occur in the node graph mid-development but due to time constraints, I started to work on things less and less as our main project took priority to be finished before picking it up in the final week to do cleanup on all of my assets.
I think all in all we worked well as a team, There are key individuals who did a tone of amazing work but then there have also been those who we haven't seen in class since the very first week, Throughout the duration of the project most of us had at least gotten to a point of constant communication, so we all knew where we were up to & what we were working on the entire time but On the whole, I think it all worked out. I think as a team we just wished we’d had longer or at the very least been able to do this alongside a less demanding main project, as it’s been hard to work on both projects at the same time and the strain on the team is very apparent. Colabs has had to be sidelined week after week, which is unfortunate, as it's the first time since I came to MMU that Colabs has actually been a fun experience but at least at the end of the day, I'm happy with what I was able to create within the time I had.
### **Bibliography**
Games workshop (2021) "Step inside a necron tomb world with art and lore from kill team"[Online]
[https://www.warhammer-community.com/2021/02/19/step-inside-a-necron-tomb-world-with-art-and-lore-from-kill-team-pariah-nexus/]
BHVR (2023) "REALMS AND MAPS"[Online]
[https://deadbydaylight.com/game/maps/]
wmmvrrvrrmm (2023) "Alien Explorations"[Online]
[https://alienexplorations.blogspot.com/2012/09/maxs-headroom.html]
Rebecca Smith, (2019) "Journey to the Savage Planet Teases Its Mysterious Environment"[Online]
[https://www.trueachievements.com/n37022/journey-to-the-savage-planet-teases-its-mysterious-environment]
Ben Cloward (2022) "Interior Mapping - Shader Graph Basics - Episode 34"[Online]
[https://www.youtube.com/watch?v=2qVSV5dhdb0&list=WL&index=10&ab_channel=BenCloward]
Stylized Station (2022) "how water works in Sea of Thieves"[Online]
[https://youtu.be/EMb_FUmr0Ts]
Marvel Master (2018) "UE4 Tutorial - Local Volumetric Fog 1/3 - Basics - Unreal Engine 4"[Online]
[https://www.youtube.com/watch?v=McBiRCSWM9Q&list=WL&index=53&t=6s&ab_channel=MarvelMaster]