Moderator elections are being held. See Valve Developer Community:Moderator elections for more details.
Users who would like to run for moderator must be autoconfirmed and have at least 100 edits. Users can check their own edit count at Special:Preferences.

Конвейер (Portal 2)

From Valve Developer Community
Jump to: navigation, search
English (en)Русский (ru)
... Icon-Important.png

Введение

Для создания конвейера Portal 2 потребуется несколько брашевых энтитей func_tracktrain, каждая со своей целью пути path_track, объединённых в ряд, с включенным параметром Teleport TO this у первой энтити, чтобы путь зациклился.

Note.pngNote:Чтобы узнать, как использовать гель на конвейерной ленте, см. примечание внизу статьи.

У каждой func_tracktrain родителем должна быть модель prop_dynamic props_factory/conveyor_belt_module.mdl, которая будет следовать пути.

Создание опоры конвейера

Note.pngNote:В ходе руководства будет создан короткий конвейер из четырёх секций. Чтобы сделать конвейер длиннее, продублируйте секции, чтобы сделать короче - уменьшите их количество.

1. Создайте prop_static с моделью props_factory/conveyor_belt.mdl

2. Продублируйте её и выстройте в ряд их четырёх штук. Это будет конвейерная опора:

ConveyorPortal2 1.png

Создание конвейерной ленты

3. Создайте энтити prop_dynamic с моделью props_factory/conveyor_belt_module.mdl

4. Выровняйте её начало по началу опоры prop_static, которую мы создали на шаге 1:

Конвейерная лента должна как минимум на 8 единиц быть выше основы.

Движение ленты

5. Создайте маленький прямоугольный браш 20x24x16 с текстурой nodraw. Поместите его ниже конвейерной ленты, чтобы он занимал место между моделями:

ConveyorPortal2 3.png

6. Выберите конвейерную ленту вместе с брашем и скопируйте их дубликаты в начале каждой конвейерной основы.

В данном руководстве потребуется семь секций.

7. Чтобы облегчить задачу, скройте всё, кроме первой конвейерной ленты и прямоугольного nodraw-браша (H = скрывает выбранное, U = отображает всё скрытое).

8. Создайте энтити path_track и поместите её внутри прямоугольника nodraw так, чтобы они оба начинались в одном и том же месте:

ConveyorPortal2 5a.png
Как упоминалось ранее, имеется семь секций, поэтому должно быть семь установок nodraw+path_track.
Note.pngNote:В ходе дальнейших действий модели будут скрыты, и внимание будет уделяться только этим установкам nodraw и path_track.

9. Каждый блок nodraw сделайте энтитей func_tracktrain. Дайте каждой энтити своё имя. В данном руководстве имена идут от conveyor_mover01 до conveyor_mover07. Каждая энтити будет иметь следующие свойства:

Max Speed: 60
Initial Speed: 60
Change Angles: Never
conveyor_mover01 'First stop target' = 'conveyor_path01'
conveyor_mover02 'First stop target' = 'conveyor_path02'
conveyor_mover03 'First stop target' = 'conveyor_path03'

Повторите это для каждой энтити func_tracktrain.

10. Скройте nodraw-энтити func_tracktrain и снимите выбор с них, оставьте видимыми энтити path_track. Каждой path_track дайте уникальное имя по принципу, как в шаге 9 выше. В данном руководстве назовём их conveyor_path01 - conveyor_path07.

11. У каждой path_track задайте 'Next stop target' на следующую path_track, то есть у conveyor_path01 параметр 'next stop' задан на 'conveyor_path02' и так далее. Последняя должна указывать на первую, то есть цель conveyor_path07 - это conveyor_path01.

Связанные path_tracks с оранжевыми линиями между ними, начала совпадают с каждой nodraw-энтитей tracktrain. Каждая tracktrain имеет свою path_track, и обладает уникальным именем.

Завершение

12. Выберите первую path_track (с именем conveyor_path01) и установите флаг 'Teleport to THIS path_track':

По достижении конца (conveyor_path07) путь будет немедленно телепортирован в начало.
Note.pngNote:Вместо использования teleport to THIS вы можете использовать worldportal, также называемый linked_portal_door, скрытый за брашем с выключенным параметром Solidity.

13. И в конце для каждой конвейерной ленты сделайте родителем tracktrain'ы.

Примечания

  • В конце конвейера можно осуществлять спаун энтитей с использованием энтити env_entity_maker, чтобы создавать некий шаблон, который перемещается посредством ленты и уничтожается в её конце посредством триггера или сбрасывается в яму.
  • Гели не будут оставаться на поверхности ленты, если используются модели, как было сделано выше. Секции движущейся ленты должны быть tracktrain-брашами, а не моделями. Удалите все энтити prop_dynamic и примените текстуру metal/conveyor_belt к nodraw-брашам (вместо динамических моделей).
  • func_tracktrain принимает вход RemovePaint

Ссылки

  • Скачать карту-образец: [1]