Announcement

Collapse
No announcement yet.

The Heart

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    The next update is ready! I’ve been doing a lot of Spring cleaning lately, otherwise this would have been posted sooner , but in spite of all that, the Aspen wind is finally done and I think the audio and movement should be pretty much in sync. There are new game builds that can be downloaded here: http://www.artoflightandmotion.com/downloads

    and I did some more relaxing videos with the new wind sounds. This first one is just sitting in one spot with the calm, Fall wind blowing:

    This next one is also sitting in one spot with the Fall wind, but I tried experimenting with having some of the spontaneous music playing for several of the sections:

    I didn’t do any recordings for the Winter wind yet, even though it’s in the game, since there isn’t too much to look at during the Winter right now.



    There was someone who gave me a post process material for Unreal, which was very kind, that adds a little bit of post process sharpening, so that’s in the game now. It’s subtle, but still works quite well and makes the small details stand out just a little bit more, adding more clarity overall.



    Also, the idea I had for the bark randomization worked out, so all of that is in the game too. I had to redo the way that the sculpts I made for the bottom were laid out. Originally I had each bottom piece in a strip like this:



    then I was using vertex colors and a mask to put a certain piece of that strip on the tree mesh. The new way I’m doing it, I separated out each piece into it’s own separate piece that is one third of a strip, like these two:





    and I have six of them altogether that are then randomly assigned to the mesh using a little bit of math in the material UVs that randomly translates the UVs. Since I have a lot more space to work with though, having basically two strips worth of space instead of only one ( 6 one-third pieces = 2 strips), I’ll have to do some more sculpting work on them so they aren't so empty. After getting them into Unreal, I also realized some of them are a bit too unique and you start to notice them while walking around, so I’ll have to work on them a bit more to get them looking more similar to each other, so it’s not too noticeable. I thought I would try to do just one on each update or something like that so I don’t get too bogged down in just redoing things over and over. All together though, the new system works quite well and ended up being about 30 less material instructions as well; so that’s a bonus.


    I’ve also had some more free time lately, so I was able to record some more spontaneous piano playing. You can find that here and in the game (Sessions 10-12 are the new ones): https://soundcloud.com/user-304480598

    With that free time, I’ve been working some more on the explanation of how the seasons work too, so that’s still coming . Right now I’m working on the explanations for baking everything into textures to use in Unreal.



    The next thing I’ll be working on is trying to do a couple more variants of the Aspens. I still need to do a full grown Aspen where the leaves are just at the top of the tree, and I also need to do some that are about mid height between the full grown Aspens and the bush type Aspens. After those are done, I should be able to start experimenting with putting them over the whole landscape automatically and see how that goes.

    Thanks for looking!
    Last edited by ArtOfLight; 04-30-2018, 10:11 PM.

    Leave a comment:


  • replied
    Thanks Grot13!

    Yeah, I was kind of surprised how well everything ended up working together in the end. That’s awesome you’ve been enjoying listening to it while working on stuff! I was hoping people might be able to. I'll have to look into ways of trying to sharpen everything, it does seem to get a bit blurry when everything is moving.

    Right now the current plan has been to try to get some more variations of aspen done, then start experimenting with having them automatically put around the world with the landscape materials, and see how particle systems like leaves falling would work with all of that, but yeah, I'm planning on working on things like rain and snow during all of that time as well, even if I don't have it all tied to any kind of weather system yet.

    I guess the overarching goal has been to try to get the aspen areas done to completion, and get all of the bugs and systems worked out with them that will be in the final game, then start adding more kinds of vegetation after that and buildings as well. As part of making the Aspen's to completion, I would love to add those things you mentioned too, like butterflies, and I had thought fireflies for the nighttime. Hopefully soon I’ll be able to start adding some of those smaller details. I say “soon”, but with how long everything takes, it will probably be 4 or 5 months


    I hope everything has been going well with your game

    Leave a comment:


  • replied
    You've made some nice things again!
    The first thing to say is the synchronisation beetween wind and sound gives an amazing realistic effetc, so as the spatialization.

    I keep the youtube video playing as background while working, it changes from music I listen. I like the panorama and lights you choosed for the video, and it made me think that I would put a post process material to sharpen a bit the image.

    What are your plans when wind is done? Maybe some particles effects, like pollen for spring or some butterfly ( and rain, snow, it should be a thight part here too)

    Keep up this good job !

    Leave a comment:


  • replied
    I have the wind done! It took a while, but it seams to have turned out pretty nice in the end. You can see it in the new game builds I uploaded here: http://www.artoflightandmotion.com/downloads. I was able to get the movement of everything pretty closely in sync with the audio. There is still some tweaking to be done in some areas, but for the most part, the effect turned out pretty cool.

    There are two videos this time.
    One shows the wind movement at different wind speeds and showing the wind’s transition from summer to fall:
    https://vimeo.com/260600743

    The other one just sits in one place while the wind is blowing calmly:
    https://youtu.be/BCNiM9m9dzo

    Just as a note, I only have the strong version of the wind done for the fall and none for the winter. I also went ahead and redid the fall sound that I had been using since it was one of the first wind sounds I was working on and it wasn’t as cohesive with the summer sounds.


    Another neat thing is the direction the trees sway changes based on what direction the wind is coming from. It’s subtle since there isn’t too much sway, but it’s still noticeable. It’s also noticeable with some of the other wind effects going on.


    The only thing that’s not quite working with it yet is the branches don’t move up and down with the leaves. I found out I’ll have to use another vertex color for that, but with the bark I’m already using two vertex colors, plus another one for another wind effect, so I’ll need to do the bark differently without vertex colors to free up another one. The good news is I had an idea for doing it with a Flipbook node in Unreal, and each tree will have a random texture assigned to it in the end. This was something that I was already planning on trying to figure out something for because with the way I have the bark texture currently, each tree model I make can only use one bark texture for the bottom, and to get any kind of variation, I would have had to make duplicates of the same tree, then change the bottom bark texture on each one. It just wouldn’t have been a very good method and would have taken up a lot of time. With this method everything will be randomized after the tree is in the level, so I can just create maybe two tree models for each type of Aspen, and all the trees will randomly have all the variations of texturing.



    There is also another short poem on the wall in the teleport room:
    What does it mean to be good?

    To be good is to live by a law of love.

    It is what raises up instead of destroys,
    to care about others instead of ourselves,
    to give instead of take,
    to not use or abuse people for our own desires,
    to use your hands to help instead of hurt.


    But there is another kind of goodness,
    a goodness that does destroy instead of raise up.

    For though there is goodness in this world, there is also evil.

    When evil comes, what does someone who is good,
    do with those who choose to do evil?

    Do you allow the evil to continue, hurting and using others?
    Or do you end the evil, and allow it to hurt no more?

    For how can it be good to allow the unlove, forever?


    Such is God’s heart too, that no one would perish,
    but if we are not willing to love or care about others,
    then what other option is there, but to end that evil by ending us?

    People wonder, “How can it be good to destroy a nation?”
    To which the question is, “How can it be good to allow people to endlessly hurt each other?”


    So out of love Goodness builds up,
    but out of love Goodness also destroys,

    and such is what it means to be good,
    to live by a law of love.


    One last thing I almost forgot about that is somewhat related to this is there is a pocket watch I’ve been working on for someone, for probably the last 6 or 7 months now, that uses a 3d model of the earth and moon to tell time with. The really cool thing is it uses all the real data of the earth and moon to calculate all of the animations. Eventually I would like to be able to have something similar inside of the game to change time with, but for now I put it up on SketchFab here:

    https://sketchfab.com/models/980882b...5eb86b89807aa5

    It’s just kind of a neat thing that I didn’t know if anyone might enjoy seeing or make them smile. I probably wouldn’t have been able to create all of it if it weren’t for doing all the work on this game.


    I think that’s everything in this update. The next update I’ll be working on finishing the other wind sounds and adding the randomization to the trunk texture that I mentioned above. Thanks for looking
    Last edited by ArtOfLight; 03-20-2018, 12:07 AM.

    Leave a comment:


  • replied
    All right, I have the next update ready. There has been quite a lot that’s happened since the last update. To borrow a bit from the Matrix, I've been following the white rabbit down the rabbit hole of audio design, or at least, it feels that way . In all seriousness though, I've really been learning a ton of new stuff about audio. Although, since I’ve had to learn so many new things, I was only able to get three pieces of audio done enough to show, one for calm wind and one for strong wind during the summer, then another strong wind for fall. Since everything is about audio in this update, there isn't much to show visually either, so this post is going to be a lot of text . I am happy to say though that the wind is going to be able to work with the seasons, so it will sound different as the seasons change. I went through all of the audio stuff I’ve been doing further down below.

    Even though there isn’t too much new stuff, I went ahead and updated the game builds if anyone is interested in hearing what's done of the wind so far. I'll do a video of it once the trees are blowing in the wind. Since I don’t have any weather implemented yet, in order to change the wind speed, you’ll have to go to the weather tab inside of the in-game options menu, accessed by pressing the E key in-game. I also did a bit of preliminary work on getting the trees to move in the wind. It’s going to take a lot of experimenting, and it’s also all very new to me, but from what I can tell of it so far, it might be possible to get some pretty neat effects with it.

    Also, I have the text for the first section of the write-up for how to do the seasonal changes done, but still need to add pictures. You can see the progress so far here: https://www.dropbox.com/sh/v03321o6y...B50CLCYga?dl=0 There are probably a lot of spelling errors in it still .



    I didn’t know if anyone would be interested in this or not, but I just found out that one of the stories I had mentioned a while ago, and that is talked about in the Inspiration section, that also partly inspired the project, was put up on YouTube. So if you would like to see part of what inspired the whole project and what continues to inspire it, you can see it now. It’s a very, very old interview https://www.youtube.com/watch?v=63vM7NcrB-o



    Now to talk a bit about the audio, the beginning of the adventure started while I was working on implementing the audio using Unreal’s audio engine. There was something I was looking up how to do, I don't remember what, but as I was searching, I ran across this tutorial on YouTube about using an external audio engine to do the audio in a game: https://www.youtube.com/watch?v=1QdDwQONq_g. From there I started looking up audio engines to see what might work best for me, or if I even needed to use one. In the end, I ended up choosing one called Fmod for it, and so far it's working out pretty well. It's definitely much better than working with Unreal's current audio engine.

    From there, I also started looking up dedicated audio workstations to see what kind of options are out there, and I ran across one called Reaper that's a full fledged audio workstation for only $60. This is one of those things that I'm incredibly glad I ran into and bought. I had been using Audacity to try to work with the audio before, but after working with Reaper, my goodness it's incredible the kind of stuff you can do with audio. That kind of ties in with the other thing I learned about audio, that there aren’t very many places to find good audio for free out there, that will right away work with what you’re doing. One really amazing place I found worth mentioning is https://www.zapsplat.com/ ; they really have a ton of free, very high quality sounds done by audio professionals.

    Back to my audio, so far, I’ve only been able to find one piece of audio that has the sound of aspen leaves in it, and it's only in strong wind as well: https://freesound.org/people/juskiddink/sounds/78955/. This is where having Reaper has been a huge help. I definitely wouldn't have ever been able to do what I've done so far with the wind without it. One of the biggest things that helped was having a real time equalizer, which made it possible to adjust frequencies and immediately hear what I had changed while the audio was playing. This made it possible to isolate the sound of the leaves:





    After they were isolated, I could then layer them on top of each other to make it sound like there were more of them. Here is what it looks like for the calm wind. The leaves on the first 4 tracks are from the piece of audio mentioned above. Then the Far Off Leaves are from another audio file. The track at the top is some audio I decided to mute and not include in the final mix:





    Since the wind sound was no longer with the leaves sound, I was also able to use other files for the wind that sounded calmer. This all gives a very large amount of control over the final sound of the wind and leaves. You can see the wind on the bottom track:





    Reaper is also great with the way it automatically crossfades sound clips together, which makes two audio clips sound like they're one clip. This is used a lot in the Strong Wind audio and makes it easy to split a piece of audio and put the pieces wherever you want them. The crossfades are the red areas:





    Now, about getting it all in the game, right now the plan is to have different wind sounds play for each different area type; one for aspens, one for pine tress, one for meadows, and so forth. They have such distinctive sounds that I thought it would be worth it to spend the time and create unique audio for each. In order to have all of that work, I had to create an easy way to automatically select which audio to play in a certain area, then do all the setup work for that audio, like telling it what season to start in, or what the wind speed is on each frame, and things like that. In order to do that, I also had to be able to get a reference to the audio actor in the gameworld, otherwise I can't tell it what to do. So I ended up creating a blueprint with a sphere trigger, and attached the audio actor to the blueprint:





    Then when the player enters the sphere trigger, the sound starts playing, the setup work can be done on it, and a reference to the audio can be stored somewhere. One of the really neat things about having the sound inside the blueprint is, since I would be able to easily get a reference to every sound actor, I was able to have it be a 3D sound instead of a 2D sound played through a single, global audio actor. So as you go out of the Aspen grove and turn the player's head, the sound of leaves comes from the direction of the Aspen grove.

    I think that's everything new for now. Congratulations if you made it through all of that text!

    Leave a comment:


  • replied
    Exadi - That’s wonderful, and thanks! I was hoping that it would feel restful and peaceful to be in! Eventually I would like to add clouds and things to it too, like it’s a room up in the clouds.


    Grot13 - Yeah, it’s really going to be fun to see everything come to life a bit more with the wind ! So far nothing else changes throughout the day/night and seasons, although it would be interesting to play with those to see how it changes things. I did add light shafts to the sun with this update, using the occlusion method, but that’s on constantly as well since they are calculated by how foggy it is.

    Here is how the full Blueprint graph looks for lighting:


    and the curve for the atmosphere multiplier that uses the sun's Y rotation for the X value:


    The only other thing that changes is the skylight gets recaptured whenever the sun has changed it’s rotation enough in the morning or evening, in order to change the ambient colors as the transition is happening:


    I’ve been kind of surprised how just adding a simple atmosphere calculation, and changing the ambient light with it, changes the feel so much. Adding phases to the moon light brightness really changes things too. I guess it would make sense though if that’s how it is in the real world

    Just as a note, the sun and moon positioning are from this tutorial here: https://www.youtube.com/watch?v=n7IiVU-oBK4

    Leave a comment:


  • replied
    Can't wait to see (and hear) the wind!
    What you've done with lights is nice, do you change anything else than position and intensity for lights (things like bloom or cubemap) when day/night or season transition?
    Last edited by Grot13; 01-12-2018, 04:22 AM.

    Leave a comment:


  • replied
    Teleport room really does its job, it is so bright and clean. It gives a feeling of peace.
    Great work!

    Leave a comment:


  • replied
    Thanks a lot to you both! It really means a lot. It’s great to hear that it’s looking good so far! Sometimes I've been working on it so long that I'm not really sure how good it's actually looking in the end, so it helps to get feedback from a new pair of eyes .

    LeHova - Sorry this response took a little while. I’m not sure what happened, but for some reason I never got a notification of your message...

    Leave a comment:


  • replied
    Video looks handsome

    Leave a comment:


  • replied
    Wow. This looks awesome dude.

    Leave a comment:


  • replied
    Next update is done! Not too much to show in this update. I’ve mainly been working on cleaning up code and getting things more organized, but there are a few things I’ve added that are new. I thought I would wait to update the game builds until the next update when there should be wind in the game. I was also able to get a good start on the explanation of how to create the seasonal transitions textures and materials. It's definitely going to be quite lengthy ​.

    First addition is that the teleporter room is inside of it’s own level now, which loads and unloads from memory. That way it’s not taking up computer resources when the player isn’t near a teleporter. It took a while to get it working because of the way the teleporters need to be linked in the code, and since the ones in the teleport room don’t always exist if they haven’t been created yet, it was causing problems for the ones in the landscape. I finally got it all working though.



    The biggest visible thing though is I was able to implement moon phases for all the lighting at night, both for the actual moon light and the ambient light. So the brightness of the nighttime corresponds to how much the moon is lit now. While I was working on this, there was another really interesting thing I was able to add that I hadn’t thought of before. When I was looking up information on the brightness of the moon at different phases, I ran across this article that had a graph of how bright the moon is during each phase, but also how bright it is as it gets higher in the sky: http://home.earthlink.net/%7Ekitatho...moonbright.htm

    After seeing this, I realized I hadn’t implemented any kind of atmosphere to how bright the sun and moon are throughout the day or night. Then I realized that’s the real reason why the sun is a different intensity during the winter, because it doesn’t rise as high in the sky and the light has to travel through more of the atmosphere. So after implementing that, the intensity of the sunlight throughout the day is governed by how high it is in the sky and the intensity of the winter light behaves more like the real world now. The way I had been doing it before was according to the temperature, so the colder the average temperature was, the less bright the sun was. It worked pretty well in the end, but this other way is definitely much better and the brightness ended up being about what I had set it to before. I’ll also be able to add modifiers to the brightness according to things like humidity later down the road. All in all, adding those two things made all of the lighting quite nice, and you get much more of a sense of time of day. Here are a bunch of screenshots of the different intensities:

    Twilight to Afternoon:









    Intensities in Teleport Room:




    Winter:




    Morning to Afternoon - Fall:










    Moon Intensities:
    No Moon:


    Half Moon:


    Moon at Different Heights:
    Horizon:




    Moon Up Higher:




    Unreal related
    There were a couple things on the code side of things that I thought could be helpful to someone.

    The first one is about the skylight. It turned out to be a bit of a challenge trying to get one skylight to work for both the night and day because the skylight needs to be able to recapture the environment when the lighting is changing during sunrise and sunset and at night vs day, but at night, all it captures is black, so I had to have a way that at night I could increase the intensity to get a little bit of fill light, then lower the intensity as the sun was rising and the sky was becoming brighter. It also needs to have a different intensity at night that is based on both the moon phase and a separate calculation for the atmosphere based on the moon’s position instead of the sun. Here is the final result I arrived at:


    Hopefully it’s fairly self explanatory for anyone used to working with blueprints. Basically it uses the sun’s Y rotation to figure out whether it’s day or night, then interpolates between the value needed for day and the value needed for night, during a certain transition phase. Although the result looks simple, getting to this point was quite difficult with all of the different factors that have to be accounted for and took a lot of trial and error.



    The other idea is about loading streaming levels. Normally for doing things like loading a saved game, I put all the code inside of a function in the Game Mode class. Then whenever the game needs to load or save data, I just call that function, but I’m not able to do that with the streaming levels because they have a timer associated with them that can’t be used in a function. I was going to try doing it with a Macro, but they can’t be called in other Blueprints because of the way Macros work. So the idea I had was to put all the code associated with loading the level inside of the Game Mode. Then wherever the level needs to load, use a Blueprint Interface to execute the code in the Game Mode whenever the level needs to load. Here is how it looks in the Editor:



    It really works quite well, and is almost like having a function that can be called anywhere. I realize it’s probably not the most amazing idea ​, but, because of having so many different places and ways that the Teleporting room needs to load, and needing to do it through Blueprints instead of streaming volumes, I had started having to duplicate code in various places, and having it this way really organized things nicely.






    I think that's everything. As I had mentioned before, I thought I would try to work on wind next. Now that I have low-growing bushes that won't get much wind and tall trees that get a lot of wind, I'll be able to experiment with getting the wind intensity right for both.

    Thanks for looking

    Leave a comment:


  • replied
    Thanks Grot13, I’m just glad it all seems to have worked out okay! Hopefully I’ll have the write up about the seasons done soonish. I was hoping others would be able to use the ideas in their projects as well, so that would be great if you’re able to have it in your game


    Ah, yes, bird sounds would be nice to have in there, especially as it starts to look more realistic. I forgot about adding those kinds of things to my list of things to add. It would be nice to have that for the videos too. I'll probably be able to start adding those kinds of things soon. I thought I would try adding wind and wind sounds to the trees in the next few months as well.


    I haven’t had any experience with multiplayer, but yeah, I’m sure it could be quite a challenge getting everything working right , and best done from the beginning, like you said. Here was one link I had run across and saved that I didn’t know if it would help or not. Someone talks about Game Mode and Game State in the first reply: https://www.reddit.com/r/unrealengin..._for_a_single/


    I had not seen your new post. Those puddles worked out very well! It ought to look quite nice when you have more of the environment done.

    Leave a comment:


  • replied
    Hi, I really like those new features, the way leaves disappear and change color is very realistic! That's definitively something I'd like to see in my project (I want the nature side to be the most simulating possible)
    Also you ask for ideas about sound, I think it could be nice to switch beetween a music or ambient sound. Birds singing in a forest is very relaxive.

    Indeed communicating beetween blueprints can be hard sometimes, I also store a lot of variables, functions and references in the game mode class because as you said it can be accessed everywhere, but I've been advised recently to develop the multiplayer early, so maybe I'll have to store things also in the game state class.

    Leave a comment:


  • replied
    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: https://soundcloud.com/user-304480598/session-9

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

    https://vimeo.com/244945423


    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!
    Last edited by ArtOfLight; 12-03-2017, 02:17 AM.

    Leave a comment:

Working...
X