Blueprint comunication/global variable for season change?

Hello, this is my first post here.

I’m fairly new to Unreal and blueprints, but I have some experience in coding c#/c++.

I’m trying to set up a system for seasonal model replacement. I was able to successfully make a blueprint to change model on a tree with enumeration.

What I would like achieve is to change seasons with one global switch. For all levels, and all models - mostly trees an vegetation (and later materials) at once. And it should work in editor.

Any help on this, links to tutorials or documentation would be appreciated

Go to Unreal website, then Online Learning section.
In there they have many tutorials on how to build similar mechanisms, including but not limited to the Variant Manager, Level Streaming, and more.

I think what you’re looking for might be best served by the Variant Manager, but I could be wrong.

There are probably some YouTube tutorials on this subject as well.

The tricky part is knowing which parts of which features will best serve your goals, and what combination of them all will do what you want.

So far I made an extensive research, watching many tutorials, but I hoped there is some easy solution for this. Well… there isn’t :wink:

I was able to create this system in game but I struggle with it working inside the editor.

Is there any way to fire an event on all tree instances by one single control blueprint in the editor? I can’t get any tick solution working so far, I will be trying to use for loop instead.

Are these foliage actors?
Do you want a gradual animated change instead of instant switch?
Are the only difference going to be aspects of the materials on the trees, or will they use different meshes/models?

There are a lot of ways you can trigger something, but if it is an animation effect you will probably want to have a globally-accessible variable that they all look at to decide what they should look like, and gradually change the value on that one (probably a float variable) over time using tick or Timeline. ON the other hand each tree could have its own timeline or variable if you want them to change at different rates instead of all together in lockstep.

Wait, are you saying you got this to work at runtime but you want to be able to change it in editor?
If you want to change things about actors during editor use, you can make use of the Constructor function on those actors to run logic every time a value is changed in the actor’s properties in the editor, including of course the transform of its location, rotation, scale. but also optionally including other variables you set up.

Sometimes what I do on a blueprint actor is I create a function that does what I want in response to value changes, and make sure the constructor calls that function, but then I can also call that function from things other than the constructor.

Thank you very much! You’ve set my mind in the right direction!
I was able to set my own tick function in editor, but I ended up using for loop and get all actors of class to change them wit single custom event - as I only need the instant switch solution. We use this for a live background in a movie shoot.
I still have to check it against large number of trees, but our landscape is not very large, and I can wait a bit for a loop to execute, no problem.

Later on I will be working on gradual change of seasons for a few timelapse shots, but this time using sequencer, so it should be fairly easy for me to animate the parameters.