Поле антиэкспроприации
Поле антиэкспроприации или Испаритель - это специальное энергетическое поле в Portal 2 , которое сбрасывает установленные пушкой порталы и разрушает объекты, которые коснулись его. Через него нельзя устанавливать порталы.
Используйте поле антиэкспроприации, чтобы у игрока не было возможности установить портал в области, ограждённой полем, либо пронести через поле объекты.
В Portal испаритель состоит из двух моделей - невидимого trigger_portal_cleanser с текстурой trigger и из излучателя системы частиц (info_particle_system).
В Portal 2 испаритель состоит из энтити (trigger_portal_cleanser) и пары моделей (fizzler.mdl). У браша, используемого для триггера, должна быть установлена текстура NODRAW , кроме двух сторон, имеющих текстуру поля антиэкспроприации.
Экземпляр
Как для большинства тестовых элементов Portal, для поля антиэкспроприации также есть свои экземпляры . Они статичны, имеют размер лишь 128x128 единиц и предназначены для работы в сочетании с лифтом , и поэтому сферы их применения очень ограничены. Есть три варианта оформления: чёрный и белый повреждённые и чёрный чистый.
- instances/gameplay/fizzler_black_clean_128x128.vmf
- instances/gameplay/fizzler_black_dirty_128x128.vmf
- instances/gameplay/fizzler_white_dirty_128x128.vmf
Создание вручную
Данное руководство будет понятно даже новичку, не знающему Hammer.
Шаг 1
Создайте prop_dynamic и (для данного руководства) используйте модель "models/props/fizzler.mdl"
. Есть и другие модели испарителей (со словом "fizzler") для карт в стиле старой лаборатории или для моделей с поддержкой динамического "открытия-закрытия":
models/props/fizzler.mdl
models/props/fizzler_dynamic.mdl
models/props_underground/underground_fizzler.mdl
models/props_underground/underground_fizzler_wall.mdl
Это основная четвёрка моделей, есть и другие, более или менее детализированные.
Шаг 2
Теперь разместите по модели с каждой стороны области, через которую в обоих направлениях предметы будут испепеляться. Модель излучателя поля, как вы могли заметить, утоплена в стену, чтобы при необходимости воспроизвести анимацию закрытия; даже если используется статическая модель, гнездо всё равно присутствует.
Итак, создадим три браша, окружающие излучатель поля сзади, по бокам и часть спереди (обратите внимание, что боковые браши будут также входить с переднюю сторону), не забудьте связать эти браши с func_detail.
Создадим два браша размером 32x8 единиц и 128 единиц в высоту и разместим их с каждой стороны модели излучателя. Убедитесь, что каждая панель крепления излучателя посажена на браше, как показано на иллюстрации. Добавьте ещё один браш за моделью для герметизации (если там уже есть другая стена, делать этого не нужно). Покройте эти браши текстурой соответствующей стены, даже внутренние части; покройте текстурой "nodraw" только те части, которые не будут видны.
Шаг 3
Создайте браш с текстурой "nodraw" (tools/toolsnodraw), идущий от одной модели излучателя к другой. Это будет область антиэкспроприации, испепеляющая предметы. Она должна быть единицу толщиной и 128 единиц в высоту. Свяжите браш (нажатием Ctrl+T) с энтити "trigger_portal_clenser". Задайте параметр "Visible?" на "Yes" и нажмите кнопку "Применить".
Не забудьте на вкладке флажков включить "Physics Objects", чтобы при касании растворялись не только порталы, но и такие предметы, как кубы и турели.
Шаг 4
Откройте Texture Application tool и выберите только переднюю и заднюю стороны поля, которые будут видимы. Нажмите "Browse" и фильтруйте в поиске "fizzler", выберите "effects/fizzler" и измените текстурную шкалу на 0.125 для обеих осей X и Y, затем нажмите "Применить".
У вас должен получиться работающее поле антиэкспроприации! Если дать ему имя, вы сможете открывать и закрывать его системой входов/выходов, в этом случае не забудьте выбрать другую модель "models/props/fizzler_dynamic.mdl" и добавить соответствующие анимации при открытии и закрытии.
Динамическое поле антиэкспроприации
В некоторых испытаниях поле играет роль тестового элемента, и его нужно включать/выключать и открывать/закрывать. В следующем руководстве вы научитесь создавать динамическое поле антиэкспроприации.
Шаг 1
1. Создайте две энтити prop_dynamic со следующими настройками:
Имя свойства Значение World Model models/props/fizzler_dynamic.mdl Name fizzlers HoldAnimation true Collision Not Solid
2. Создайте блок trigger_portal_cleanser 128 единиц в высоту со следующими настройками:
Имя свойства Значение Name fizzler_brush Visible yes
Выберите следующие флаги:
- Clients
- NPCs
- Physics Objects
3. Создайте энтити logic_relay со следующими настройками:
Имя свойства Значение Name relay_fizzler_enable
и следующими выходами:
4. Создайте энтити logic_relay со следующими настройками:
Имя свойства Значение Name relay_fizzler_disable
и следующими выходами:
Шаг 2
Для открытия и закрытия поля необходим триггер. В этом руководстве мы используем простую prop_floor_button. Когда игрок или куб нажмёт кнопку, поле будет отключено. При отпускании кнопки поле будет снова включено.
5. Создайте энтити prop_floor_button со следующими выходами:
Получилось работающее динамическое поле антиэкспроприации! Мы можете поменять триггер на, например, prop_button, trigger_multiple и т.д.
Поля большого размера
Иногда требуется создать поле выше или длиннее 128 единиц, но так как модель излучателя поля имеет длину лишь 128 единиц, потребуется добавить еще два излучателя и браши к ним над имеющимися моделями. Для этого просто скопируйте созданное ранее и перетащите на 128 единиц выше, и повторяйте это столько, сколько вам нужно.
НЕ растягивайте браши на нужную вам высоту, так как требуется, чтобы при выстреле из портальной пушки светилась белым только одна секция поля; применяйте этот подход, так как он используется в официальных картах.
Чтобы сделать поле более широким, потребуется разрезать браш на три части. Воспользуйтесь инструментом clipping tool (Ctrl+X) по бокам как можно ближе к моделям, и убедитесь, что обе стороны отрезанного остались (выделены белым). Оба новых браша должны быть 128 единиц в длину. Средний браш будет растягиваться между этими двумя - его длина не важна. Снова откройте Texture Application tool и залейте переднюю и задние стороны среднего браша текстурой "effects/fizzler_center", браш справа текстурой "effects/fizzler_l", браш слева - "effects/fizzler_r". Не забудьте выровнять текстуру по её соответствующей стороне!