Ru/Creating a rotating portalgun
Вступление
В этом учебнике мы создадим вращающийся стенд с прикреплённой портальной пушкой, которая будет автоматически открывать порталы.
Подготовим модели
Потребуется две prop_dynamic энити, по одной для каждой из следующих моделей:
models/props/pedestal_base_reference.mdl. Назовите еёstand_bottom_modelи установите параметр "disableshadows" на 1.models/props/pedestal_center_reference.mdl. Назовите еёstand_top_model.
Подготовим браши
Создаёте два браша с такими размерами:
- 32 x 32, высота - 4, использовать текстуру
tools/nodraw. - 4 x 32, высота - 55, также использовать текстуру
tools/nodraw.
Движение
Переместите stand_bottom_model туда, где будет стоять стенд. Мелкие дверцы внизу модели должны находиться под землёй. Теперь переместите stand_top_model над stand_bottom_model, как показано на картинке справа.
Сопоставьте первый браш (с размерами 32x32) с stand_top_model. Установите на оси Z (высоте) около половины высоты stand_top_model.
Теперь передвиньте второй браш к стенке стенда, как показано на картинке справа.
Брашевые энити
Выберите первый браш и превратите его в func_rotating энити со следующими параметрами:
Property Name Value Name stand_func_rotating Max Rotation Speed 30
В списке флагов снимите галочку Start ON.
Превратите второй браш в func_door с такими параметрами:
Property Name Value Name stand_func_door Speed 25 Move direction: 90 0 0 Delay Before Reset -1
В списке флагов снимите галочку Passable.
Портальная пушка
Создайте энити weapon_portalgun. Назовите её weapon_portalgun.
Поместите её точно на макушку stand_top_model. Портальная пушка должна быть направлена налево, если вы смотрите на stand_top_model со стороны, где видно синюю стрелочку, как на первой картинке наверху этой страницы.
Определение аутпутов у энитей
Сделайте logic_timer энити, назовите timer_stand и установите его refire interval на 5 секунд. Убедитесь, что start enabled у энити включён.
А теперь идём в аутпуты и пишем:
Создайте новый аутпут у stand_func_door:
Теперь делаем аутпуты у stand_bottom_model:
И несколько аутпутов для weapon_portalgun:
Parent-ы и "дырка"
Сейчас установим параметр parent у weapon_portalgun и stand_top_model на stand_func_rotating.
Когда всё будет готово, сделайте дырку в форме цилиндра на полу ниже stand_bottom_model, как показано на картинке справа.
Финал
Вдобавок, вы можете создать portal frame на каждой стене, на которых будут открываться порталы.
Чтобы это сделать, создайте prop_static энити с моделью models/props/autoportal_frame/autoportal_frame.mdl, Переместите её к стенке, на которой вы собираетесь её разместить, поверните её так, чтобы она встала параллельно к стене.
Или вы можете создать portal frame из брашей с такими параметрами:
- Размер - 8 x 2, высота - 128
- Расстояние между брашами - 64 юнита
- Текстура на передней стороне брашей -
signage/fixed_portal_border - Текстуры по бокам -
signage/signage_border
