ArmA 3 Changing Skybox
ArmA 3 Forum, ArmA 3, ArmA 3 Config, ArmA 3 Missions, ArmA 3 3D Modeling, ArmA 3 Scripting, ArmA 3 Terrain, ArmA 3 Texturing, ArmA 3 Tools
2021-08-14
Some basics on changing your skybox by Jujurat.
Notes to consider:
ArmA 3 does not handle skies in the same way as predecessor titles, skies are optimized for the visual update and for the TruSky Simulweather Systems. You can get mixed results depending on your lighting configuration. I personally use a custom lighting configuration that draws formatting/structure from Livonia's.
class Overcast: Overcast { class Weather1: Weather1 { sky = "juju\juju_heilstein\data\sky_clear_sky.paa"; skyR = "juju\juju_heilstein\data\sky_clear_lco.paa"; horizon = "juju\juju_heilstein\data\sky_clear_horizont_sky.paa"; }; class Weather2: Weather2 { sky = "juju\juju_heilstein\data\sky_almostclear_sky.paa"; skyR = "juju\juju_heilstein\data\sky_almostclear_lco.paa"; horizon = "juju\juju_heilstein\data\sky_almostclear_horizont_sky.paa"; }; class Weather3: Weather3 { sky = "juju\juju_heilstein\data\sky_semicloudy_sky.paa"; skyR = "juju\juju_heilstein\data\sky_semicloudy_lco.paa"; horizon = "juju\juju_heilstein\data\sky_semicloudy_horizont_sky.paa"; }; class Weather4: Weather4 { sky = "juju\juju_heilstein\data\sky_mostlycloudy_sky.paa"; skyR = "juju\juju_heilstein\data\sky_mostlycloudy_lco.paa"; horizon = "juju\juju_heilstein\data\sky_mostlycloudy_horizont_sky.paa"; }; class Weather5: Weather5 { sky = "juju\juju_heilstein\data\sky_cloudy_sky.paa"; skyR = "juju\juju_heilstein\data\sky_cloudy_lco.paa"; horizon = "juju\juju_heilstein\data\sky_cloudy_horizont_sky.paa"; }; class Weather6: Weather6 { sky = "juju\juju_heilstein\data\sky_overcast_sky.paa"; skyR = "juju\juju_heilstein\data\sky_overcast_lco.paa"; horizon = "juju\juju_heilstein\data\sky_overcast_horizont_sky.paa"; }; };
This is a snippet of code that declares what sky textures to use for my Heilstein terrain. Essentially, skybox textures are selected based on overcast values. Weather1 is the result when Overcast = 0, to put it simply. Every skybox material has the sky paa itself, an lco, and the horizont image. You can look at the textures themselves to see how they're setup and so forth, but typically it's pretty simple. Something to note is that ArmA 3 by itself doesn't use this system heavily anymore.
With the release of ArmA 3, they added volumetric clouds which instead populate the sky with certain densities based on Overcast values. Typically, in a terrain, they will all use one skybox texture. Because of this, BI decided with the visual update to give skies a color value based on the lighting configurations. This will make skybox textures tinted with a certain color value based on the time of the day. This both enhances and deteriorates the quality of your textures, for example, they might be slightly dimmer than Arma 2's visual representation of it and so forth.
ArmA 3 also uses a new sky object, often labeled as “Obloha” (we can assume that's czech), so Arma 2's sky textures will be warped because they are textured to fit Arma 2's sky object's UV properties. You can either make your own textures for ArmA 3 by using ArmA 3's sky object's UV properties, or use Arma 2's sky object.
skyObject = "juju\juju_heilstein\data\obloha.p3d"; starsObject = "juju\juju_heilstein\data\stars.p3d"; sunObject = "juju\juju_heilstein\data\sun.p3d"; horizontObject = "juju\juju_heilstein\data\horizont.p3d"; moonObject = "juju\juju_heilstein\data\moon.p3d";
All of these values still work properly and as they should. Rainbow objects can also be changed.
However, a result of all of this tampering with Volumetric Clouds has resulted in BI disabling their old system for clouds. In Arma 2, clouds were both on textures, and when an overcast value was set higher, also in P3D models. They would typically be flat planes with a texture assigned to them, and would float around in the sky. It was simplistic, but a good effect for storm clouds. They were disabled, and as far as I can tell, are disabled at engine level with no possible way to enable them again. The values are still used in BI configs, but I do not know the reason why. Perhaps for internal testing or debugging.
clouds[] = { "juju\juju_heilstein\data\mrak1.p3d", "juju\juju_heilstein\data\mrak2.p3d", "juju\juju_heilstein\data\mrak3.p3d", "juju\juju_heilstein\data\mrak3.p3d" };
Just like everything else, you can make your own cloud models or just use ArmA 3's, or ArmA 2's. They will not show in ArmA 3 however.
Lastly, if you'd like to disable ArmA 3's volumetric clouds, there's no real way to disable the system entirely. However. You can hide them and get them not to show.
class Overcast { class Weather1: DefaultKeyframe { overcast=0; cloudiness=0; diffusivity=0.001; extinction=3.9000001; seqFileKeyframe=0; };
Every Weather class in the parent class Overcast has a cloudiness boolean. You can set this to zero for every Weather class. This will disable clouds. An alternative way to make it never rain and also disable the clouds is to change the base height of them, but I do not recommend doing it this way. If you set the base height to something like zero, it will rain, but you will never see the rain because it will be raining below you. :)
Back to ArmA 3 Terrain.