You wake up in a Server Room with no clue who you are or how get in there. After a short time you meet with the voice of Freud, a neuroinformatician and former Aperture Scientist, who claim that he wants to help you. But another voice, Kant, warns you that Freud only wants to reactivate the mysterious Omega Project and that you have to find out more about it before you can help him. Additonally there is the AI Thanatos who wants to kill you and who is interested in the Omega Project, too. Who can you trust...

Post tutorial Report RSS [TUT] Make things fly through Pneumatic Vents

In this tutorial I will show you how to make things like cubes, or turrets fly through Pneumatic Vents.

Posted by on - Intermediate Mapping/Technical

Make things fly through Pneumatic Vents


You have certain see the "animated" Pneumatic Diversity Vents in the Portal 2 maps made by Valve and you maybe have wondered how to make them in your own maps. Unfortunatley Valve used animations with prop_dynamic for the animation and they are not documented (also they would work only for some specific Tube geometries), so you can not use them for our purpose.

But there is another method: Based on this tutorial I have created a simple to use instance, that does almost everything for you. It will chose random between a turret, a weighted cube or a reflector cube and will move this through the vent while rotating it.

Follow these steps to use it:

  1. Build a pipe out of prop_static with the proper models.
  2. Create a track out of path_track entities following the tube geometry: Create one and give it a name (the name must begin with an @ or it wont work! ). Then press shift and drag the path_track to the next position in your track.
  3. For the last path_track entity open the Properties and set the set the Keyvalue "Next Stop Target" to the name of your start track.
  4. It should look a closed loop like this now:

    snip 20160521173025

  5. For the first path_track set the "Teleport to THIS path_track":

    snip 20160521173151

  6. Download this instance file and copy it into your instances/user folder
  7. Create a new func_instance and set VMF Filename to "instances/user/animated_tube.vmf" (or your path if it differs) and give the instance a fixup-name
  8. Now will have a screen like this:

    snip 20160521173107

  9. You must set the "$track" name to the start path_track entity you have just created.
  10. On the end track you have to create an output with "My Output" = OnPass , "Target Entity" = [the fix-up name of your instance] and "Via this input" = "instance:chose_random;Trigger":

    snip 20160521175704

  11. Optionally you can set some parameters to change the behaviour of the instance:
    1. $rotation_speed : this option sets the speed of the rotation of the created object
    2. $initial_speed and $max_speed : set the correspodending values for the func_tracktrain that moves the obects over the track. Shortly: It controls the Velocity of the movement through the vent.
    3. $max_pause : When the object reach the end of the track, it waits a random time until it moves again. This value control the maximum waiting time. Set it to zero to restart the movement immediately.

  12. If you have questions or ideas then write them in the comments please!
Post comment Comments
Secret_Coming
Secret_Coming - - 1,057 comments

would be a good idea if you could teach us how to make the player fly trought the pneumatic diversity vent, I had a really hard time figuring that out when I was onto mapping :/

Reply Good karma Bad karma+1 vote
Guest
Guest - - 691,149 comments

This comment is currently awaiting admin approval, join now to view.

Guest
Guest - - 691,149 comments

This comment is currently awaiting admin approval, join now to view.

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: