Orb Catcher Tutorial

From ThinkingWithPortals

Jump to: navigation, search

A tutorial originally by Rivid31 on how to create a fully functioning Orb Catcher, as seen in Portal.

Contents

Info

Like the Orb Launcher, this entity is not created as a prefab in Valve. We will have to construct it from several other entities and set up some Input/Output for these entities. The Orb Catcher is somewhat more complicated than the Orb Launcher, but not by much.

The Entities

Here are the required entities which are needed to make the Orb Catcher.

prop_dynamic

The base of the Orb Catcher. This is the model you see on the wall that catches the ball. You'll want to cut a hole in the wall for the back of the model as well. This hole should be 32 units tall, 64 units wide, and 32 units deep.

The prop is located at 'models/props/combine_ball_catcher.mdl'. Set its name to catcher.

The "caught" combine ball. This is the ball you see inside the catcher model after it has caught a ball. The prop is located at 'models/effects/combineball.mdl'.

  • Set "Start Disabled" to Yes.
  • Set its name to fake_orb.

env_sprite

You will need to make two of these entities. These will create the glowing effect of a caught ball.

  • Set the "Sprite Name" of the first to 'materials/sprites/physring1.vmt'.
  • Set "Render FX" to Distort.
  • Set "Render Mode" to Additive.
  • Set "Framerate" to 30.
  • Set "Scale" to 1.5.
  • Set "Size of Glow Proxy" to 0.
  • Set its name to ring_sprite.
  • Make sure both flags are unchecked.


  • Set the "Sprite Name" of the second to 'materials/sprites/glow01.vmt'.
  • Set "Render FX" to Distort.
  • Set "Render Mode" to World Space Glow.
  • Set "Framerate" to 30.
  • Set "Scale" to 2.
  • Set "Size of Glow Proxy" to 0.
  • Set its name to glow_sprite.
  • Make sure both flags are unchecked.

filter_combineball_type

This makes sure the catcher only catches combine balls, and not other props like cameras, or boxes.

  • Set the "Ball Type" to Launched by point_combine_ball_launcher.
  • Set its name to catch_filter.

ambient_generic

This will make the correct sound when a ball is caught.

  • Set the "Sound name" to 'AlyxEMP.Charge'.
  • Make sure "Start Silent" and "Is NOT Looped" are flagged.
  • Set its name to catch_sound.

point_spotlight

This will create the orange light that comes out of the catchers.

  • Set "Color (R G B)" to 218 76 26
  • Set "Spotlight length" to the length of the room, or slightly shorter.
  • Set "Spotlight width" to 25
  • Set its name to catch_spotlight

trigger_multiple

The last thing you will need to make is a brush-based entity.

Create a cylindrical brush with 10 sides and the trigger texture. Make the cylinder with a diameter of 44 units, and a height of 32 units. Tie the brush to a trigger_multiple.

  • Set the "Filter name" to catch_filter.
  • Uncheck all flags except everything.
  • Set its name to catch_trigger.

The Entity Placements

Placing the catcher and entities.
  1. Place the catcher where you want it to be in the map. Place the model so the front section is flush with the wall, and the back part is in your hole you cut out. Don't forget to cover the back of your hole to prevent leaks.
  2. Place the ring_sprite, glow_sprite and fake_orb flush with the wall.
  3. Place the catch_spotlight a few units in front of the catcher model so the model doesn't block the light. Make sure the spotlight is pointing away from your model.
  4. Place the trigger_multiple so it fits within the 3 inner 'arms' of the catcher. Set the front face of the cylinder flush with the end of these 3 shorter, inner 'arms'.
  5. Place the catch_filter and catch_sound anywhere near your catcher.

The I/O Setup

Adding the outputs to your catcher.

The only entity that has any outputs is your trigger_multiple.

catch_trigger

Add the following outputs to your catch_trigger

  • OnTrigger -> fake_orb -> Enable
  • OnTrigger -> catch_sound -> PlaySound
  • OnTrigger -> !activator -> Kill
  • OnTrigger -> glow_sprite -> ToggleSprite
  • OnTrigger -> ring_sprite -> ToggleSprite
  • OnTrigger -> catcher -> SetAnimation -> close
  • OnTrigger -> catch_trigger -> Disable
  • OnTrigger -> logic_timer -> Disable (logic_timer is the timer set up to launch the ball. You must disable this or your launcher will continue to launch balls
  • OnTrigger -> catch_spotlight -> LightOff

You will also need to add outputs to this trigger to do whatever this catcher is set up for (open doors, activate a lift, change indicator strips... etc).


Related Tutorials

Orb Launcher Tutorial

External Links

Download example map

Personal tools