Posts

Showing posts from February, 2019

Joe Nelson's Masterclass Afterthought

I've just been to Joe Nelson Masterclass in Manchester. Where he talked about his project, Hellblade, at Ninja Theory. It was really interesting learning about how he captured the essence of Psychosis and implemented it into the game and the design challenges he faced. It's difficult to show what part of a game is psychological and what is real in a character because everything is virtual and people understand that games are not real. Joe's masterclass showed his approach to tackling this challenge.  After the talk, I spoke to many developers especially Simon Smith the founder of Gameopolis and it was amazing meeting him. I also got the opportunity to play The Occupation ahead of release! it was amazing!

Colour information to the material

Image
I was re-watching Simon Trumpler's talk on the water in Rime and studied the material he provided. The material is spaghetti madness making it difficult to understand what exactly is happening, but with his presentation, it has somewhat cleared some of the confusion. I mainly wanted to find out the visual information such as the colour, opacity and refraction information. I'm not too bothered with other aspects such as the world position offset and the normal map as I feel that I want to implement my own version. However, the Rime water material seems to have the reflection and Normal map even though the material is unlit which is interesting. Normally, unlit materials cancel out these aspects of the material. 🤔 Unusual presence of Cloud reflection and subtle normal map information in an unlit water material

Fluid Surface Simulation Evaluation

At the moment the Ripples of the water surface I made did not take the shape of the overlapping objects. I was thinking of combining distance field with render targets but I'm not exactly sure how I would go about doing this. I spent a bit of time trying to figure this out but I've decided to take a bit of a break from refining the ripple as I feel I'm spending too much time on one aspect when there are other aspects such as the Gerstner Waves, The Colour and others I need to focus on. Although it would be great to have the ripples take the shape of the object. However, for now, it more or less works the way I want it to behave and I don't think it will make a noticeable difference. I probably might revisit this in the future with better knowledge and a better approach to creating ripples.

Water System Reflection (I mean thinking not actual mirror reflection)

Image
I was advised that I needed to add some kind of 'box' to work with when creating the fluid simulation. There are a lot of new features I can constantly keep adding but this could lead to spending too much time on one aspect when I need to be exploring other methods. I was initially going to make the ultimate water system (Mwahaha!) but I need some point where I can call it done. I need to look at some games I really like and base my fluid simulation on those games. So here are the games I really like the water systems in and why: Zelda Breath of the Wild - The water system in this game can reach out and influence other aspects of the game such as making certain objects have buoyancy, get manipulated by weather- water dissipation and many other aspects . Also known as being systemic as mentioned by Mark Brown from Game Maker's Toolkit: https://youtu.be/SnpAAX9CkIc. However, you cannot swim underwater like the previous Legend of Zelda games. Water Dissipation in Zeld

Fluid Surface Simulation for multiple objects

Image
The water surface at the moment was limited to the trace input and the pawn. I wanted to try and find some way to make the simulation work for any objects. On the Beginoverlap and Endoverlap nodes, I removed the 'cast to' node and made it so that any actor overlapping can make the ripples. For some reason, didn't work and it seemed to only still work for the pawn. Then I remembered that the Mesh collision settings were set to pawn only. After setting to overlap all the blueprint works with multiple objects. Begin and End Overlap for any overlapping objects however it only works per object and not for multiple objects However, there were two problems with the blueprint. One is the BP only reacts to latest overlapping objects. The second being the blueprint reacting to one object at a time, so if I have two objects overlapping with the blueprint at the same time, then the surface will only choose one of the objects and make a ripple. I need to make it so it works with a

Fluid Surface Project

Image
Before i could begin making the dynamic water simulation, I needed to wrap my head around render targets. It seems to be that render target is something that has been added to UE4.  I've been following a tutorial from the UE4 documentation on ‘Creating a Height Field Painter with Blueprints and Render Targets’: https://docs.unrealengine.com/en-us/Engine/Rendering/RenderTargets/BlueprintRenderTargets/HowTo/HeightFieldPainter Heightfield Painter in action After creating this i then moved onto the tutorial on how to ‘Create a Fluid surface with Blueprints and Render Targets’: https://docs.unrealengine.com/en-us/Engine/Rendering/RenderTargets/BlueprintRenderTargets/HowTo/FluidSurface However, the problem with this tutorial is that it became confusing as it tells you to create variables from the Heightfield tutorial and skipped a lot of information. So I used information from the content examples project for some assistance in creating the fluid surface. I deconstructed and s

Bottled Fluid simulation Bug - Solved!

Image
After extensive testing and various debugging methods, I finally figured out where the problem is.  The clamp node I had didn’t allow negative values. However, whenever I enabled negative values and tested the bottle, the sine movement wasn’t working. It turns out  that I was moving the bottle through a small distance which meant the negative values were cancelling each other out thus making the sine very subtle. I didn’t see this until I finally moved the bottle at a larger distance. The Finterp Node was also the main culprit as it really hard to notice the problem and the interpolation speed was slow. Now, I need some sort of multiplier that would make the interpolation speed faster for shorter distances and slower for longer distances. Here is the screenshot with new changes: This creates another problem- the sine motion goes crazy for physics based bottles with the newly implemented interpolation speeds for the Finterp Node. Physics based bottles worked fine with  the interpola

Bottled Fluid Simulation Bug

Image
After testing the fluid simulation, I noticed a major design flaw in the material and that is the Sine motion of the fluid seemed to move diagonally. This means that the sine was combining all 3 directions (X,Y and Z directions). To fix this, I used an append node to separate the values and create separate scalar parameters which can then be controlled via Blueprint.  Separated values with the append node in th material Added changes to the Blueprint This has somewhat worked as the sine now moves in X and Y and doesn’t exclusively move diagonally when moved in X and Y directions. However, another issue has appeared where the diagonal movement of the sine wave is not moving in the opposite direction when the object is moved diagonally in the other direction. The directions the sine wave of the fluid moves along when the object (bottle) is moved. The sine does not move along the yellow directions, it somehow moves in the blue directions instead. the blue directions wo