Results 1 to 9 of 9

Thread: Question about Map Fog.

  1. #1
    CMGuy
    Guest

    Question about Map Fog.

    This is bugging me for a while, but I really wanna know how to adjust the map fog.

    Such as making it more visible on certain maps that have lots of it.

    Any help would be great plz!!!

    Also, using the 'Show Fog' Command via Console Doesn't Count.

  2. #2
    meowcat
    Guest
    Two options:
    1. Open the maps in UEd (map editor), save them as a different name (add "_fog" or something to the file name, that way you won't break online compatibility). Then go through and check the various ZoneInfo actors and change the correct fog settings according to the info posted here.

    2. *I think* the zoneinfo fog variables (color, distance, bDistanceFog, bClearToFogColor, etc) are adjustable realtime. Create/code a mutator that uses a 'mutate' type command to allow you to get and set the various fog color and distance variables for the zone that your are in, and then save the Zone/fog settings to an .ini file as a string/struct or something by level name. Use other code in the mutator to "restore" saved settings when the map is played again.

  3. #3
    CMGuy
    Guest
    Hm...... A mutator? That could be possible, but I need someone who can verify this or had already done so.

  4. #4
    meowcat
    Guest
    Simple test to see if this would work. Play a map with fog (the simpler the better) and try adjusting the zone fog through console commands:
    1. "set zoneinfo bDistanceFog 1"
    2. "set zoneinfo DistanceFogStart 0"
    3. "set zoneinfo DistanceFogEnd 500"

    If you see a noticeable change in the fog (or get fog where there was not before), then it means the properties can be changed real-time and you could accomplish this through a mutator.

    [EDIT] Now that I think about it I remember someone already made a fog mutator a long time ago (back in 2003-2005 time). I think it was one of the WoD guys, or maybe Fraghouse...

  5. #5
    CMGuy
    Guest
    Well....... I guess I'll dig it up and find it, though I doubt its still available for DL, that and the Original guys who made it are probably long gone as well. :/

    Maybe I can make one then? I did some very simple mutators a while back. I think I can give it a go.
    Depends how complex it is however and Im not willing to put too much time figuring it out...

  6. #6
    meowcat
    Guest
    The mutator was called Fog Match (for UT2k3), I can't seem to find a link to it. Anyways, just read up on the mutator function 'mutate' (it can be bound to a key with a text parameter), then just use a switch statement to figure out what you want to do.

    If you pursue this, I'd recommend creating a little GUI window that allows you to set the color, distances etc. for the zone your are in. Since zoneinfos are serialized in the level (zoneinfo0, zoneinfo1, zoneinfo2 etc.) saving the data should be fairly straightforward (ie. save a struct entry in config array for the mutator that has the zoneinfo index and the corresponding info).

  7. #7
    melissa_jo
    Guest
    A mutator? That could be possible, but I need someone who can verify this
    YOU can verify it

    Code:
    class MutMyfogger extends Mutator;
    
    function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
    {
        local PhysicsVolume PV;
        PV = PhysicsVolume(Other);
    	if ( PV != None )
    	{
    		PV.bDistanceFog=true;
    		PV.DistanceFogColor.R=0;
    		PV.DistanceFogColor.G=16;
    		PV.DistanceFogColor.B=48;
    		PV.DistanceFogColor.A=64;
    		PV.DistanceFogStart=8.0;
    		PV.DistanceFogEnd=2000.0;
    	}
    	return true;
    }
    defaultproperties
    {
        GroupName="EnvironmentalFX"
        FriendlyName="NightFog"
        Description="Adds volume fog to any map"
    }

  8. #8
    meowcat
    Guest
    @ melissa_jo: Are you sure that will work on Physics Volumes (you would also need to check ZoneInfos too)? The reason I ask is that if I recall correctly CheckReplacement is only called for those actors that are not already present in the level (or maybe it was bStatic or whatever). Anyways, recommended addition to the code would be to call super.checkreplacement as well to make sure you don't break the mutator checkreplacement call chain.

  9. #9
    melissa_jo
    Guest
    recommend creating a little GUI window that allows you to set the color, distances etc.
    agree
    recommended addition to the code would be to call super.checkreplacement as well
    agree

    The code I pasted above is intended as a quick compilable proof-of-concept.
    It's part of a larger rollup "environmental fx" mutator that I use to tweak level gravity/jumppads/projectiles, level lighting/fog, etc.

    FWIW, I can't recall ever encountering a map in which the local zoneInfo fog properties have trumped the settings applied by the mutator.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •