Oscar Kempe Söderholm

Portfolio About

Dynamic Environment

For this project I wanted to create a tool inside of unreal engine that would enable a user to quickly take a scene and give it a new feeling. It allows a user to simply drop an actor into the scene and then have access to the most vital options for changing the mood of a scene. It can also be set to update in real time, allowing it to be used in cinematics.

Within just a couple of seconds a scene (in this case Ithris Cemetery from the unreal marketplace by Rasmus Bagner) can be given a drastically different feel.

The tool exposes a limited amount of paramaters to the user. This is done to simplify the process of defining a feel of a scene and in turn make it easier to work quickly.

Here is a showcase of how the system works in realtime. In this showcase I'm using the Medieval Houses Modular Vol 2 asset pack from GameAssetFactory on the unreal marketplace.

In order to control the look of the environment I needed to create a number of master materials in which I could create a snow effect that can be smoothly lerped into as well as control roughness and use wpo for the wind.

For the rain and snow I make use of a single particle system. This is done so that I can gradually transition between rain and snow, rather than having to create a hard cut when I switch between systems. For this to work I took a basic floating particle emitter and tweaked it too look like rain and then a second one to look like snow, I then took the values needed for the two seperate looks and used a number of lerps to switch between them based on the global coldness parameter.

If I had more time

As it stands right now the system functions very well. I however don't believe it to be very user friendly. Which always was a major goal.

To improve this aspect I would have liked to create a simple and easy to use UI panel. This way the user would not have to search the asset browser for the right actor, it would also allow the user to interact with the system while having other objects selected.

What I learned

While it was not my original goal, this project has taught me a lot about finding and fixing bugs. A lot of them had to do with handling things like there not being a certain actor in the scene, a directional light for example, or there were duplicates of an affected actor, such as two fog actors.

This ended up teaching me a lot about finding and fixing bugs in a system in a easy and scalable way.