The Heart

Next update is ready and there are new game builds available here: http://www.artoflightandmotion.com/downloads !

For this update, I’ve mainly been working on implementing the ideas I had for the seasons and teleporter options I mentioned in the previous update, and I also got my first Aspen bush/sapling done! There are a few things I’ll have to adjust with it, but for the most part, I think it turned out quite well. The SketchFab landscape in the first post has been updated too.

Dudecon, on Blenderartists, also had a great idea for having the sunlight intensity change as the seasons change, which I was able to add on this update, and I think really adds to the atmosphere of the world. I will probably be adjusting it further as I get more things done, but at least the code is in there. I also worked on the lighting for the shadows a bit.

There is another spontaneous piano session found here: Stream Session 9 by ArtOfLight | Listen online for free on SoundCloud

You can see the things I have updated below, as well as a few other more real-time things in this video:

Here are some general screenshots of how things are looking:

And here are some screenshots of things I have updated:
Difference in sun intensity, depending on seasons and latitude:
Notice how bright the lit areas are in summer, even though it’s the same time of day for both images.

Trees no longer leave bits of leaves behind when the leaves fall off:

Leaves change color at the plant’s edges first, the way they do in nature:

After adding the verticality to the branches and leaves that I mentioned in the previous post, you can see the light hitting the leaves much better now, even when under the tree. Overall, each branch looks much fuller as well:

I also found that having a mesh similar to what is below can help a lot for the profile at the top of the Aspen bushes. It keeps things from looking flat at the top:

Also, here are all the final shapes I used for the bush. So far the two triangles in a V seem to look the best, so I’ll be adding more variations of those to the bush with different leaf textures on them in the future:

Spring leaves growing:

For the next update, I’ll mostly be working on code behind the scenes. There were some things that I had done when I was first starting out, and still learning, that I really need to fix before adding more code. I also thought I would start doing a writeup about how the season transitions work, but I don’t know how complicated it could get, or how long it might take, so no promises there :). I would also like to adjust the shadows for night to transition to be darker as well.

Strictly Unreal related:
(
One last thing I wanted to share is an idea I had for creating references to other blueprints in Unreal’s “Blueprint” coding system. As anyone who has worked with the blueprints knows, it can be difficult to get references to other Blueprints, especially for Widget-Actor interaction. The way I had been doing it was to create the widget in say the character blueprint, and store a reference to it there as well, but then I would have to get a reference to wherever I had created the widget if I wanted another blueprint to interact with that widget. The difficulty was that I ended up starting to have references to things scattered throughout the code, and it just wasn’t very easy to interact between Blueprints.

The idea I had though was to have all my references stored in the Game Mode class, then if I need one of the references in another class, I can just get it from what’s stored in the Game Mode, since the game mode can be accessed anywhere. The way I did it was to have one actor class that is just used for Reference Storage. Then when this class is instanced inside of the game world, I assign all of the other actor classes that are in the game world to variables in this class, using public variables that I can set up in the editor. Then I just use a get all actors of class node in the Game Mode, and set it to get that Reference Storage class that’s inside of the level. So now the Game Mode has access to all the actors that are inside of the game world, via that Reference Storage class. I also use a get all actors of class node to get a reference to the character, since the character is only instanced after the game starts.

Next thing is I create all the widgets in the Game Mode class as well, and store them in a variable at the beginning of the game. Then when I want to add one to the viewport, I just get the reference to the widget that is in the Game Mode.

So now, if I need to communicate back and forth between a widget, an actor, or the character, I just cast to the game mode and get the reference stored there, and I’m able to access any actors in the game and any widgets in the game, from anywhere in the game. And I only have to look for the reference to it in a single place, instead of many references scattered all over. I don’t know if it would be considered the proper way to do it, but so far, it seems to be working out pretty well. There could be some difficulty with it if you have separate levels you are loading, but I think it might be possible to just have the Game Mode get different references for each level.
)

Thanks for looking!