Staredit Network > Forums > SC2 Assistance > Topic: Reveal Fade
Reveal Fade
Apr 16 2011, 5:17 am
By: Bolshevik09  

Apr 16 2011, 5:17 am Bolshevik09 Post #1



Hello there,
I have been messing with the flashlight effect lately, and that's working great...
But i was wondering if there was a not-so-complex way of making the explored areas fade back to unexplored?
So that i could make a "pitch black" effect..



None.

Apr 16 2011, 5:31 am Roy Post #2

An artist's depiction of an Extended Unit Death

Why yes, yes there is. I did this for my December contest entry.

I'm assuming you're using the flashlight system I came up with, but any system involving triggers can incorporate this. Before running the flashlight's reveal, run this action:

Visibility - Change visibility for player 1 to Unexplored within (Entire map) and Do Not check cliff level





Apr 16 2011, 6:06 am Bolshevik09 Post #3



Oh okay good. Now for a flashlight question:
How do you make the "flashlight" only reveal terrain that is the same height as the unit? I tried disabling "check cliff level," but no luck only works partially.
-i think i would have to set a region to all terrain of a certain height which idk how to do



None.

Apr 16 2011, 6:48 am Roy Post #4

An artist's depiction of an Extended Unit Death

Yeah, I've been having trouble with this. You can check "Height At Point" to determine if the point specified should be revealed. I haven't worked out a perfect algorithm for this (my December entry had a partial algorithm).

Essentially, you want to do this: if "Height At Point" at the current position is significantly greater (I used +0.3) than "Height At Point" of the position of the unit, do not reveal, and stop all further flashlight reveals. Here's an example of what that would look like:

                General - For each integer counter from 1 to 10 with increment 1, do (Actions)
                    Actions
                        Variable - Set spread = (((Real(counter)) * 0.45) - 0.5)
                        General - If (Conditions) then do (Actions) else do (Actions)
                            If
                                ((Ground height at unitPoint) + 0.3) >= (Ground height at (unitPoint offset by spread towards unitFace degrees))
                            Then
                                Visibility - Reveal (Region((unitPoint offset by spread towards unitFace degrees), (0.5 + ((Real(counter)) * 0.2)))) for player 1 for 0.06 seconds and Do check cliff level
                            Else
                                General - Break


The "Break" should make it exit the loop. Technically, using break statements is bad design, so if you want, you can add a boolean local variable, add it to the If/Then/Else condition list, and flip the boolean in the else statement.




Apr 16 2011, 7:18 am Bolshevik09 Post #5



Quote from Roy
Yeah, I've been having trouble with this. You can check "Height At Point" to determine if the point specified should be revealed. I haven't worked out a perfect algorithm for this (my December entry had a partial algorithm).

Essentially, you want to do this: if "Height At Point" at the current position is significantly greater (I used +0.3) than "Height At Point" of the position of the unit, do not reveal, and stop all further flashlight reveals. Here's an example of what that would look like:

                General - For each integer counter from 1 to 10 with increment 1, do (Actions)
                    Actions
                        Variable - Set spread = (((Real(counter)) * 0.45) - 0.5)
                        General - If (Conditions) then do (Actions) else do (Actions)
                            If
                                ((Ground height at unitPoint) + 0.3) >= (Ground height at (unitPoint offset by spread towards unitFace degrees))
                            Then
                                Visibility - Reveal (Region((unitPoint offset by spread towards unitFace degrees), (0.5 + ((Real(counter)) * 0.2)))) for player 1 for 0.06 seconds and Do check cliff level
                            Else
                                General - Break


The "Break" should make it exit the loop. Technically, using break statements is bad design, so if you want, you can add a boolean local variable, add it to the If/Then/Else condition list, and flip the boolean in the else statement.

i see what you are trying here but it doesn't work so well when the unit is facing parallel of the cliff. I love how complex this is...



None.

Apr 16 2011, 7:48 am Roy Post #6

An artist's depiction of an Extended Unit Death

Your experience does not match with my own; I can face parallel to a cliff and still see down the line just fine. When facing a cliff directly, obviously, barely anything is revealed, because it's like pointing a flashlight close to a wall.

If, for some reason, you need the flashlight spread to be less sensitive to cliffs and still give a decent reveal when almost facing a cliff, you may want to consider running this loop for two more sets of paths: one going away from the unit's facing direction with an offset of -5, and one going away from the unit's facing direction with an offset of +5. This will expand your flashlight width significantly, so you may want to reduce the expand rate of the light.

Here's a visual representation of what I mean. O = unit, X = Flashlight path
Current:
Code



O    X     X     X     X     X


Modified:
Code
                            X
                X     X
    X     X
O   X     X     X     X     X
    X     X    
                X     X
                            X


The code doesn't really show it that well, but I don't feel like making an image. I hope this is enough to depict what I was trying to describe above.




Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[2026-6-04. : 3:42 am]
RIVE -- Hellooooo, Nurse
[2026-6-03. : 4:19 pm]
NudeRaider -- Hello World!
[2026-6-01. : 4:03 pm]
IskatuMesk -- no Hello World? No Hello . jpeg? Not even ddosing some government website? smh my head
[2026-5-31. : 10:02 pm]
Symmetry -- I was really just figuring out how to compile
[2026-5-31. : 10:02 pm]
Symmetry -- I didn't make it do anything
[2026-5-31. : 9:17 pm]
Ultraviolet -- hell yeah. did you have trouble making the button functional, or just haven't gotten there yet?
[2026-5-31. : 8:29 pm]
Symmetry -- I made the marine shoot lasers and gave the medic a nonfunctional button
[2026-5-31. : 8:07 pm]
Ultraviolet -- Symmetry
Symmetry shouted: I did my first EUD thing today. Feels like me finding arsenal at age 8 again
haha for sure. in some ways it's even more exciting because you can play EUD maps on regular battle.net, don't need to convince someone to download your mod to play with you. what did you do?
[2026-5-31. : 6:47 pm]
Symmetry -- I did my first EUD thing today. Feels like me finding arsenal at age 8 again
[2026-5-31. : 3:20 pm]
l)ark_ssj9kevin -- le reddit
Please log in to shout.


Members Online: NudeRaider