Jump to content

[CS:GO] Screen distortion effect with trigger_look


Recommended Posts

If you've ever played Borderland 3's Bounty of Blood DLC, you might remember that the telezappers distort your screen every time you look at them. Well, with the help of trigger_look, trigger_multiple, logic_timer and logic_relay entities, I recreated this effect in CS:GO:

You can download the map (tr_warp_screen) here.

In essence, the map checks every 0.1 seconds to see whether the player is looking in the general direction of the portal/wormhole. If during that check the player is looking in the direction of the wormhole, then the map will distort the player's screen. If not, then the map will clear all overlays. If you want more details on how to do this in Hammer:

  1. First, create an info_target entity named "target_look_1" inside the wormhole/portal.
  2. Create 1 logic_timer entity and 2 logic_relay entities. Name the logic_timer entity "timer_1" and the two logic_relay entities "relay_1" and "relay_2." Set timer_1 to start disabled.
  3. For relay_1 and relay_2 create the following outputs: relay_1, relay_2. Relay_2 will be responsible for applying distortion overlay (effects/tp_eyefx/tp_eyefx) when the player looks at target_look_1, while relay_1 will be responsible for removing the distortion overlay when the player looks away from target_look_1 (via the command "r_screenoverlay effects/blank_fx")
  4. Now create a trigger_look brush entity with the following class info. Name this trigger_look entity "trigger_look1." This trigger_look brush must cover all the locations where you want the screen distortion effect to occur. For this map, I simply set this area to be the whole teleportation room.
  5. Create these outputs for trigger_look1. The timeout key value is the time trigger_look must wait until firing its OnTimeout output. In other words, if the player enters trigger_look1 but is not looking at target_look_1 after 0.02 seconds, then trigger_look will trigger relay_1, clearing the screen of all overlays.
  6. Moving back to timer_1, create the outputs seen here. What this will do is enable and disable trigger_look1 every 0.1 seconds
  7. Now create a trigger_multiple brush and have it cover the same area as your trigger_look entity. Name this brush "trig_mult" and set its keyvalues to the following values (ignore origin).
  8. Under trig_mult's output tabs, create these outputs. What this will do is enable timer_1 while the player is inside trig_mult and disable timer_1 (and clear all overlays) when they are outside trig_mult.
  9. Finally, create a logic_auto and a point_servercommand entity, naming the the point_servercommand entity "point_server." In logic_auto, set output to "OnMapSpawn," target entity to "point_server," via this input to "command", and parameter to "r_screenoverlay effects/blank_fx." What this command will do is clear the screen distortion effect at the start of each round.

While creating tr_warp_screen, I also learned how to import custom HDR cubemaps in the map. I needed custom cubemaps because buildcubemaps creates the following cubemap for the wormhole:



This cubemaps makes it look like you will be flying right into the teleportation machine if you go through the wormhole. When you actually go through the portal, though, you'll be teleporting out in the opposite direction, something this cubemap more correctly conveys:



@Yanzl created this tutorial on how to create custom HDR cubemaps for CS:GO. For the cubemap crosses, here's the cross buildcubemaps (I think) created for my map:



And here's the modified cross I made for the the custom cubemap:



One final word. This custom cubemap looks correct only when you're looking at the wormhole from the front (which, on my map, is the X direction). If you look at the wormhole from the sides or from above, then this cubemap will appear incorrectly mirrored.

Edited by sn0wsh00
wording, links
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...