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.
[10:41 am]
ManCubuS -- Seems like something's broken regarding the site then. Sadge...
[07:36 am]
Oh_Man -- have i ever told u guys my SC2 pro-gamer story
[11:30 pm]
Ultraviolet -- That's strange, it looks like you targeted the base image file (sometimes people make the mistake of just using the imgur page link which doesn't work for embedding) but it still didn't work it sounds like.
[03:34 pm]
ManCubuS -- Used : " [img=https://i.imgur.com/gpOjTuD.jpeg] "
[03:28 pm]
ManCubuS -- Even tried with imgur, doesn't attach.
[2026-7-26. : 3:14 pm]
ManCubuS -- I should try a workaround, thanks! Sadly imgur is blocked in my country for some unknown reason.
[2026-7-26. : 3:05 pm]
NudeRaider -- I think SEN has trouble with https or hotlinking is forbidden. It certainly is nothing about the size, it just fails to get any size. You can get it working if you use imgur and include the actual image link for the img tag. Like this: [img=https://i.imgur.com/ddYqXZa.jpeg]
[2026-7-26. : 11:15 am]
ManCubuS -- Hey fellas! Anyone knows why when I try to upload an image it says "failed to get image size"? I even tried making it so small. Imgur isn't working here and I tried postimg no luck.
[2026-7-23. : 6:40 am]
Oh_Man -- true
[2026-7-23. : 3:16 am]
RIVE -- Still annoyed there was never a trigger to stop or pause wavs.
Please log in to shout.


Members Online: Dem0n