Saturday, 27 February 2016

Research into Dynamic Weather in Games.

These next 2 weeks would be researching into dynamic weathers, more research into Python and expressions and getting the learning contract done.

The lesson this week was just as daunting as the one last week. It was pretty programming heavy and some of the syntax that was being used I had never done before.
For example when using Global variables I wasn't sure what that was but I felt I had a slight idea. In Unreal Engine 4 with the Blueprint system I can create something called a public variable. I asked Grant if they were the same thing and he said yes which eased me a little more.

As I felt lost with all the programming (though I was told only this and last week was more programming heavy) I looked up for another video that did the Python and Expressions together. Though I had watched the Digital Tutors sword trail video I felt that it would benefit me to try and get around to making that just to keep that in my memory. 
I also found another one that Autodesk did as well which I wanted to try and get around to doing around the other modules as well as the main artifact for this module. 



Introduction to Python Scripting in Maya - Part 5.


As I wanted to do the dynamic weather which affected the materials in the scene I then looked and researched some videos for what I could do with my one. 


Unigine Game Engine - Day/Night Cycle + Weather Test.

This Unigine demo is a great look at what weather could do to the environments, however, this video only shows more of the wind having an effect. The materials don't seem to change at all, when the camera is pretty close to some stones it shows they still look pretty dry.



CryEngine Tech Demo - 2:09 Procedural GPGPU Weather.

At the 2:09 mark with the procedural weather this is the type of system I want to create for this project. You can see the water showing when it begins to rain and then when it is sunny and no longer raining the rain starts to dry up. This is a great example to show what the engine does and hopefully will give a reason for more games to implement it.


Dynamic Weather System in UDK

This is using a previous generation engine but this shader works well with the engine. If this engine could do it, it is curious on why some older games do not try to do this as well. However, we don't get shown the shader it self and the programming which could have gone into this, so it could be that games in previous generation did not implement this because of memory, this video works well but what is it like with its memory.


Weather Time Lapse - Skyrim Enhanced Shaders

Skyrim is a very big game and back in its say there wasn't a reason to flaw much of the game. The Weather in Skyrim has had many different versions since its release due to modding, which can give it more of a realistic look, however, most of these shaders only change the weather itself and never the actions of players and the materials. There could be a MOD like that however, I have not found it yet.

The Witch 3 'Dynamic Weather' PS4

The Witcher is one of the recent next-gen releases on the PlayStation 4 and has a dynamic Weather system on which changes the look of materials as well. So Garret will look wet on his clothing if he is outside in the rain. 

Driveclub: Dynamic Weather

Driveclub is another next-gen release on which has a good focus on its dynamic weather and how it changes the materials in the world, this is the second next-gen game I've found with this type of change.


Tom Clancy's: The Division Snow drop Engine Tech Trailer - 1:51 Dynamic Material Shaders

The Division is another next-gen game with the dynamic weather on which changes the way the materials look in the world, even on the assets laying about.

Out of all these videos, the last 3 are from reasonable newer games which have a little more fidelity to their environments. With older games and there use of weather it was more or less there to set the mood.
The dynamic materials from The Division is what I wanted to do with the environments and the weather system.
With more of the newer generation games implementing the weather system it does show that due to the memory of older platforms that this couldn't have been done before, with memory being much larger, weather effects changing materials is more likely going to happening.

I'm not partially sure what I'm going to do in the environment and I'll need to create some textures for the scene reasonable quick to make sure I don't fall behind on my plan that I make for the learning plan.

The video 'Dynamic Weather in UDK' & The Division video, is what I would like to do with my materials. As for the weather I'd like it to be pretty standard but still readable by the viewer so they know what it is.
If I had/have the time I'd like to try get a tree that possibly moves in the wind too.

For my learning contract I found some pretty good reference I could use for this too.




Friday, 12 February 2016

Finding a Problem

After speaking with Grant I learnt that we didn't need to have the use of expressions in this module, for that reason I began to think more of what I could do.
I really wanted to do something that would require texture and shader work but I don't know how to write HLSL and last time I touched CG was like very basic stuff back in 2011.

For what I wanted to do with textures I thought I could create something like a shader for lets say for example a Molotov hits a wooden floor and in a game it hurts a player, but what does it do to the environment?
Nothing most of the time, so here I have a problem I could solve.
The reasoning to me not continuing with the rice bag concept was that Naughty Dog made it, it's not a problem in games either. I wanted to create something more dynamic in relations to materials with a problem on which I could solve.

With this fire burning wood if hit by a Molotov I thought it could be a great idea, but it seemed like a very small concept.

As I wasn't too sure how I would work this with the shaders inside of Maya because I only had done something with shaders inside of UE4 before, I went into research what Maya had to show. I then remembered a shading module called ShaderFX and knew this worked with the Viewport2.0 and used PBR (Physically Based Rendering) textures.
I then went from there to do some research on this tool as it was a node based shader development which was almost like the Unreal Engine one.

One of the first things I searched was ShaderFX and Python, to make sure I could very much control the shader through Python, I didn't find much but from what I found it kind of showed that it was possible to do this.

EDIT - The video that used to be here demonstrated a random shader assignment using Python and ShaderFX but the author appears to have recently deleted the video so it can no longer be used.

Another video I found was even more helpful because not did it only just show the tool but it also made the python script downloadable so I was able to look into the code to help me work out how I would do something with ShaderFXs. 

[Downloadable Link]

This was great stuff and super helpful as I was able to know that I could work with both ShaderFX with the Python scripting.
I kept the wood burning idea in my head and waited till the weeks lecture started so I could ask Grant about it.

----------

This weeks lecture was super helpful, we were shown previous examples of what students had done in the past, great! Now I was getting a more concrete idea of what I could develop and achieve.

Thought the wood burning one would be good I didn't really know if it was big enough or how I would go about making a area of burning effect.
From the lecture I was hit by the weather effect one, I was like hmm, I wonder if I could make something a bit more advanced from that.
Last semester I was doing freelance work for a tutorial studio called 3DMotive, it's like Digital Tutors but more aimed towards video game tutorials.
One of the materials I did for a recent course [Link to course] was creating a dynamic material that would go through change if it was raining, snowing or sunny.

I then thought, what if I created a dynamic weather system that effects the environment?
This hadn't been done much in video games to my knowledge and it could be a great place to start the research and find out what to do with this.

Thus began my journey on pushing forward with creating a dynamic weather system inside of Maya which put the focus on texture changes from the weather.

I spoke with Grant and he seemed okay with this idea...Great!


Tuesday, 2 February 2016

The Rice Bag

This week I was thinking of nailing my idea down a little more but I still wasn't 100% sure what was the requirements so I made it my job to pitch this idea and ask Grant about the module and how free it was and did it need to include expressions or just scripting.

I wanted to pitch this idea to do something that I saw in the trailer of Uncharted 4 and try to re-create the same idea as I thought it would make an interesting module topic.

Below are some pictures of the rice bag and it's dynamics which was taken from the Naughty Dog HeadSpace VFX video from week one.




Uncharted 4 Tech Art Demo - [Link]

As you can see the bags (circled in red) are used for cover, when they are hit by a bullet the rice sack would then begin to leak out the rice (the purple circle). The bag after a time will begin to deflate as you can see from the last image clearly.

I wasn't sure how I would achieve this and I asked a guy I know who worked as a VFX artist at Bioware how they normal go about creating VFXs for games and do they just use Maya as I wasn't sure if I could or wanted to do everything in Maya as I wanted to special in games which use engines.
His reply was "making rice come out of a bag will be tricky but can be achieved by using the volume of particles to drive the bags mass".
He also said Maya is normally great for prototyping but they wouldn't normally use just Maya to create all the effects.

I wasn't really sure how I would do this in just Maya or what to even start with, but I made some guesses that the bag might be achievable in Maya and having a particle emit from a set point where a bullet would have it to have rice drop out.

Maya 2014 nCloth Inflation Tutorial by Stuart Christensen