Sunday 13 March 2016

BA2B - Game Project - Week 2


BA2B Collaborative Game Project

Week 2

This week started off by having a team meeting so we all could nail down what tasks everyone should focus on the following week. My tasks for this week will be to further work on the blueprints and look into the animation system. I will also start working on the environment for the game so we can get an idea of how our art style will look in Unreal Engine 4. 

Animations

As I mentioned in the last blog post, I discovered an issue with the current animation system we were using. Since the original First Person character animations are driven by "Animation Blendspaces", an issue occurred when I was playing animations directly from the blueprint. Since we are using a mix between the original blend space animations and the blueprint ones, the blendspace stopped working as soon as an animation was triggered from the blueprints. To solve this I looked up how Blendspace animations actually work. Thankfully Epic Games have made an excellent tutorial series about how Animations work in Unreal Engine, so by watching this tutorial I got a greater understanding of blendspaces and was able to replace all the animations to work using the blendspace system.

Tutorial by Epic Games

And here is a video showing off how it works in our game.


To explain a little bit what is going on in the video, blendspaces work in a way where I can have two different animations that blend together. I can activate the animations by using different methods. As you can see in the video, with raising the shield I just used an "On/Off" button which I gave the name "Shield Rise". In the character blueprint I have assigned it so that when the player presses Space, it tells the blendspace to check this box which makes the character raise their shield. For the run animation I attached a number which basically means that the quicker the player runs, the more the hands bob up and down. I also added that when the shield gets hit, the "Shield Hit" variable will be turned on and off which will create a greater impact when the shield get's penetrated by a bolt or firespell.

After implementing this, the animations work a lot more fluently and now there are no bugs what so ever with them. Blendspaces was a great thing to learn and now I will definitely use it for future animations.

World Building

With the Animations sorted and most of the blueprints done, it was time to create some of the world itself. Billy had been drawing really good Environment Concept's which were very useful when doing this and I also asked him to create me a top down view of how he imagined the level. 

Environment Concepts Created by Billy Machin

 Top down view of the level, created by Billy Machin
(Click to enlarge)

The only model I had to work with at the time were 5 different rock models, created by Jack, I then tried to replicate the starting zone from Billy's concept with only the rocks, which was a bit tricky but it definitely helped to get started with the environment. Jack modelled the rocks so I could rotate them and scale them however I wanted, so that the player won't notice that it's just the same 5 rocks everywhere and this proved to be super useful.




I used post processing effects such as "Ambient Occlusion" to make the rocks look more visually appealing even though they did not have any textures yet, except Normals. We definitely started to get the "Firewatch" vibes from the rocks, which was one of the games we took inspiration from when it comes to the art style.
Speed Tree

Now with some of the rocks in place, I decided to start looking into vegetation. UE4 has Speed Tree support, which is a software that allows you to auto generate trees of different kinds. I figured this would save us a lot of time instead of modelling them ourselves. The idea was that we could create a tree which we were satisfied with and then just swap out the textures to a hand painted one created by one of our artists. We decided to quickly test this, so Nat created a quick birch texture which I then applied to a tree and it worked perfectly!

Screenshots of Speedtree with Nat's birch texture applied


Now that we knew it was working, Nat then created textures for the tree that we were actually going to be using in the game which was a pine tree. The needles on this right now are just a quick placeholder texture created by me for experimenting in UE4. I later replaced it with Nat's new and much better needle texture.

Pine tree with Nat's handpainted texture applied (Placeholder needles).
(Click to enlarge)

Since Unreal Engine 4 and Speed Tree support each other, importing it to UE4 was a very easy process. All I had to do was to export it from Speedtree and then import it in UE4 where all the different LOD's (Levels of detail) were automatically applied. Here are a few images of the trees in game.



I did have some lighting issues that I was struggling with in the beginning, because how Unreal Engines shadows work is that you bake them into a separate texture map. This means that the UVW's  cannot overlap, because if they do then the shadows will overlap. This results in shadows that fit in one place will show up on a different location on the model, which will end up looking odd. The issue with these tree models was that Speed Tree didn't take this into consideration and had some overlapping, as well as some bits of the UVW's being tiny. This also meant that some parts of the trees ended up with black spots. I solved these issues by looking up a tutorial for how to properly set-up vegetation in Unreal Engine. 

Vegetation Material Tutorial

With the shadow issues taken care off it was now time to replace the needle textures, as well as the grass textures with the new ones Nat had created. This really changed the scene and now we could start seeing our art style emerge in the engine.


I also got the wind to affect the trees so we got slight wind swaying, it's not much but it definitely made a change to the scene and feeling more alive. To demonstrate this I created a short video.


Week 2 Summary

We made some great progress on the game this week and it is definitely nice for everyone on the team to start seeing the game come to life in the Engine. It's pretty difficult to get an art style nailed down until you can see it in the engine, since the shaders and such in the engine will affect your art style as well. What we wanted was a mix between Firewatch, League of Legends and World of Warcraft and we are definitely already getting those vibes. Next week I will continue to work on the environment and also more vegetation in the game such as standing grass and flowers.

No comments:

Post a Comment