Conveyor (Portal 2)
Introduction
To create the Portal 2 conveyor system, a series of func_tracktrains must be created, each with their own path_track destination, linked in a series, with the first one with the Teleport TO this option checked to make a loop from the first to last path.
Parent each of these func_tracktrains to a prop_dynamic model props_factory/conveyor_belt_module.mdl which will follow the paths.
Creating the Conveyor Track
1. Create a prop_static with the model name props_factory/conveyor_belt.mdl
2. Duplicate it and line up four of them. This will make the conveyor track:
Creating the Conveyor Belt
3. Create a prop_dynamic entity with the the model name props_factory/conveyor_belt_module.mdl
4. Align its origin with the origin of the prop_static base we made in step 1:
Moving the Belt
5. Create a small 20x24x16 rectangular brush and texture it with nodraw. Place it underneath the conveyor belt so it just occupies the space between the models:
6. Select the conveyor belt and the rectangular brush together, and copy-paste to duplicate and place one on each conveyor base origin.
7. To make this next process easier, hide everything except the first conveyor belt and rectangular nodraw brush (Hammer shortcuts: H = Hide Selected, U = Show All Hidden)
8. Create a path_track entity and place it inside the nodraw box so that the two share an origin:
9. Make each nodraw box a func_tracktrain entity. Give each entity an individual name. In this tutorial, the naming convention will be conveyor_mover01 to conveyor_mover07. Each entity will have the following properties:
- Max Speed: 60
- Initial Speed: 60
- Change Angles: Never
- conveyor_mover01 'First stop target' is 'conveyor_path01'
- conveyor_mover02 'First stop target' is 'conveyor_path02'
- conveyor_mover03 'First stop target' is 'conveyor_path03'
Repeat this for each func_tracktrain entity.
10. Deselect and hide the nodraw func_tracktrain entities, leaving the path_tracks visible. Give each path_track a unique name similar to step 9 above. For this tutorial, they will be named conveyor_path01 to conveyor_path07
11. For each path_track, set 'Next stop target' to the next path in the track, so conveyor_path01 has a 'next stop' setting of 'conveyor_path02' and so on. The last path should point back to the first one, so conveyor_path07 target is conveyor_path01.
Finishing Up
12. Select the first path_track (conveyor_path01) and set the flag 'Teleport to THIS path_track':
13. Finally, parent each conveyor belt prop to the tracktrains.
Notes
- Entities can be spawned at one end of the conveyor using an env_entity_maker entity to spawn a template, which is carried along the belt and destroyed with a trigger, or dropped into a pit.
- Paint will not stick to the belt using the method above. In order for this to happen, the moving belt sections should be tracktrain brushes and not models. Remove each prop_dynamic , and apply metal/conveyor_belt to the resized nodraw brushes (in place of the dynamic models)
- func_tracktrain accepts an input of RemovePaint
External links
- Example map download: http://forums.thinking.withportals.com/downloads.php?view=detail&df_id=1299