SetOvercast still broken? Stuck in the sun ...

9 posts in this topic

I am currently doing a mission in which, at some point, you spend the night camping(with a cutscene). The following day, I would like to have a rainy morning, with an overcast of 0.75 .

I was not able to do anything with this. It seems like you are stuck with the overcast that you have set in the mission editor, which is a very bad limitation. In Arma 2, you would simply call

0 setforecast 0.75;

Anyone was able to find a workaround to this defect?

I tried the trick reported here in the notes:

skipTime -24;

86400 setOvercast 0.75;

skipTime 24;

Does not work …

Seems like I am stuck with a sunny day for good. I can understand that the new cloud engine might not be able to change the overcast on the spot ... but we should be able to change it in some ways.

Share this post

Link to post
Share on other sites

^^ you can try to get inspiration from this function:

/*	Simple Day Weather Cycle
by gamma

- Allows setting a overcast forecast for each half hour of the day
- Repeats forecast each day
- May break with time acceleration
- Initial startup may imply waiting for more than half hour* for first overcast set (works as expected after that)
* If mission is set to start at 16h15 minutes it will only set the overcast at 17h00 (wait of 45 mins)

**** LICENSE CC BY-NC-SA 3.0 ****
Creative Commons Attribution-Non-Commercial-Share Alike 3.0 License

GAM_DayWeatherCycle = [] spawn {
// LUT with forecasts for each half hour (starts at midnight)
// 1) example: cycles between full overcast and clear each halfhour
//_halfHourForecast = [1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,  0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0];
// 2) example: weather transitions
_halfHourForecast = [1,1,0.9,1,0.8,0.7,0.5,0.66,0.33,0,0,0,0.5,0.65,0.7  5,0.85,0.95,1,0.75,0.85,1,0.9,0.95,1,1,0.75,1,0.95  ,0.8,0.7,0.6,0.4,0.5,0.2,0,0.1,0.2,0,0.1,0.25,0.33  ,0.5,0.66,0.45,0.33,0.25,0.5,0.5];
while {true} do {
	_daytime = (round(daytime * 2)) / 2; // round daytime to each halfhour
	_nextchange = (_daytime + 0.5); // next half hour
	_cycle = (_daytime * 2) % 48; // current cycle (48 cycles a day)
	_setOvercast = (_halfHourForecast select _cycle); // select overcast from LUT
	0 setOvercast _setOvercast;
	GAM_hintDebugText = format [" (cycle %1)\nDaytime: %2\nOvercast: %3%4", _cycle, _nextchange, _setOvercast * 100, "%"]; // debug
	waitUntil {daytime >= (_nextchange - (1 / 60) )}; // wait for minute 29 or 59 before looping (otherwise engine calculates new value for next hour instead of half hour)
GAM_hintDebug = [] spawn { // show debugging info
while {true} do {
	_daytime = (round(daytime * 10)) / 10;
	hintSilent format ["Current\nDaytime: %1h\nOvercast: %2%3\n\nForecast%4\n\nTime left: %5m", _daytime, round(overcast * 100), "%", GAM_hintDebugText, round((nextWeatherChange / 60) * 10) / 10];
	sleep 0.25;

Edited by gammadust

Share this post

Link to post
Share on other sites

I think the issue is that there is, for whatever reason, a forced minimum time for setOvercast to complete. It may be as short as 30 minutes, or as long as 90 minutes, I cannot remember. But I think 30. Could be related to Simulcast clouds.

Share this post

Link to post
Share on other sites

Elsewhere i noted that the weather change appears to always land on half hours or full hours (which implies a maximum of 59.99minutes wait from the time setOvercast is used). I never bumped into 90 minutes waits unless i mess something up.

Share this post

Link to post
Share on other sites

I have added a note to the defect. Still not working. I have attached a mission to test it as well.


2013-10-27 19:26

- Create a new mission set at noon, sunny sky.

- Create a Alpha Radio trigger with the "On Act Code"

hint "Overcast 1";skipTime -24; 86400 setOvercast 0.75; skipTime 24;

- Start the preview. Its beautiful outside.

- Activate the trigger with 0-0-1.

- Now you will notice that the time is darker, BUT THERE ARE NOT A SINGLE CLOUD IN THE SKY.

- If you start the mission with an overcast of 75 directly, you will get a lot of cloud in the sky, but not if you change the overcast value during the game.

I have attached my little mission if you want to test it out yourself.

Here is the link to the quick mission.

Edited by frag

Share this post

Link to post
Share on other sites

i totally missed the original issue in the op. :butbut: (i assumed it was the same issue has in the ticket)

The desync has happened to me too, only when i accelerate the in-game time too much, it even gets more broken when making time go backwards, even if done in smaller time steps than a single big one... :j:

The light strength of the sun, since it's global, appears to average out the island cloud coverage, which may be the reason for the desyncs in some areas of the map (just speculation). Adjusting the time appears to mess with the cloud generation, by not leaving room for the engine to adapt and update sun light strength values.

I think the desync issue should earn it's own ticket, and not be mixed with the setOvercast misterious unresponsiveness.

I don't know of any workaround to force it's syncing, but to prevent it from happening.

Edit: just tested out your repro. Confirmed, same symptom i got when advancing time too fast.

also noticed the actual overcast after the radio trigger was > 0.737773 and updating

nextWeatherChange was reading ~23minutes to go (don't trust it too much this command, i find it not too reliable)

try not skipping the time the full 24 hours but a value between 23.5 and 23.59 (give a 30-60 minutes headroom for the engine do it's thing), alternatively when {skipTime -24} use 24.5 instead.

Edit 2:

i changed your A trigger execute to:

hint "Overcast 1"; skipTime -0.55; 0 setOvercast 1; // used 0.55 to fallback a little before 11h30, since mission is configured for sharp noon

and added a B trigger with:

skipTime 1.5; // results in cloud coverage

- had to move code to another trigger since the engine appears to require a small delay before reseting the time back after setOvercast command usage

- had to advance a full hour (in relation to the initial mission time) to observe cloud coverage and have light strength synced, other values (0.5 and 1.0 for skiptime did not cut it).

i always use 0 setOvercast x (since "Zero time means immediate change" - wiki, yet the earliest i got was 30 minutes, i assume "0" will translate to "as fast as the engine can", hence my insistence on the 30 minutes steps)

Edited by gammadust

Share this post

Link to post
Share on other sites

I noticed that if you go to your video options and change the cloud quality you get them to re-render (instant cloud coverage). So I wonder if there's maybe some command to do this?

Share this post

Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in

Sign In Now